@taiga-ui/core 5.0.0-canary.df52b8a → 5.0.0-canary.efd526e

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 (32) hide show
  1. package/components/calendar/calendar-sheet.component.d.ts +8 -15
  2. package/components/calendar/calendar-year.component.d.ts +11 -19
  3. package/components/data-list/data-list.component.d.ts +1 -0
  4. package/components/input/input.directive.d.ts +2 -0
  5. package/fesm2022/taiga-ui-core-components-button.mjs +2 -2
  6. package/fesm2022/taiga-ui-core-components-calendar.mjs +50 -117
  7. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  8. package/fesm2022/taiga-ui-core-components-checkbox.mjs +2 -2
  9. package/fesm2022/taiga-ui-core-components-data-list.mjs +8 -2
  10. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-core-components-input.mjs +4 -2
  12. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-core-components-label.mjs +3 -3
  14. package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
  15. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  16. package/fesm2022/taiga-ui-core-components-radio.mjs +2 -2
  17. package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
  18. package/fesm2022/taiga-ui-core-components-textfield.mjs +4 -4
  19. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-core-components-title.mjs +3 -3
  21. package/fesm2022/taiga-ui-core-directives-appearance.mjs +3 -3
  22. package/fesm2022/taiga-ui-core-directives-group.mjs +3 -3
  23. package/fesm2022/taiga-ui-core-directives-icons.mjs +3 -3
  24. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +125 -96
  25. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  26. package/package.json +37 -37
  27. package/portals/dropdown/dropdown-a11y.directive.d.ts +10 -0
  28. package/portals/dropdown/dropdown-close.directive.d.ts +3 -3
  29. package/portals/dropdown/dropdown-open.directive.d.ts +4 -3
  30. package/portals/dropdown/dropdown.d.ts +2 -1
  31. package/portals/dropdown/dropdown.directive.d.ts +1 -0
  32. package/portals/dropdown/index.d.ts +1 -0
@@ -1,4 +1,3 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
3
2
  import { type TuiBooleanHandler, type TuiHandler } from '@taiga-ui/cdk/types';
4
3
  import * as i0 from "@angular/core";
@@ -8,12 +7,13 @@ export declare class TuiCalendarSheet {
8
7
  private readonly today;
9
8
  protected readonly unorderedWeekDays$: import("rxjs").Observable<readonly [Monday: string, Tuesday: string, Wednesday: string, Thursday: string, Friday: string, Saturday: string, Sunday: string]>;
10
9
  protected readonly dayType: TuiHandler<TuiDay, string>;
11
- month: TuiMonth;
12
- disabledItemHandler: TuiBooleanHandler<TuiDay>;
13
- markerHandler: TuiMarkerHandler | null;
14
- value: TuiDay | TuiDayRange | readonly TuiDay[] | null;
15
- hoveredItem: TuiDay | null;
16
- showAdjacent: boolean;
10
+ readonly month: import("@angular/core").InputSignal<TuiMonth>;
11
+ readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<TuiDay>>;
12
+ readonly markerHandler: import("@angular/core").InputSignal<TuiMarkerHandler | null>;
13
+ readonly value: import("@angular/core").InputSignal<TuiDay | readonly TuiDay[] | TuiDayRange | null>;
14
+ readonly showAdjacent: import("@angular/core").InputSignal<boolean>;
15
+ readonly hoveredItem: import("@angular/core").ModelSignal<TuiDay | null>;
16
+ readonly dayClick: import("@angular/core").OutputEmitterRef<TuiDay>;
17
17
  /**
18
18
  * @deprecated use static DI options instead
19
19
  * ```
@@ -22,12 +22,6 @@ export declare class TuiCalendarSheet {
22
22
  * TODO(v5): delete it
23
23
  */
24
24
  single: boolean;
25
- readonly hoveredItemChange: EventEmitter<TuiDay | null>;
26
- readonly dayClick: EventEmitter<TuiDay>;
27
- /**
28
- * @deprecated TODO(v5): delete it. It is used nowhere except unit tests
29
- */
30
- itemIsInterval(day: TuiDay): boolean;
31
25
  onItemHovered(item: TuiDay | false): void;
32
26
  getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null;
33
27
  protected get computedRangeMode(): boolean;
@@ -35,9 +29,8 @@ export declare class TuiCalendarSheet {
35
29
  protected readonly toMarkers: (day: TuiDay, today: boolean, range: string | null, markerHandler: TuiMarkerHandler | null) => [string, string] | [string] | null;
36
30
  protected itemIsToday(item: TuiDay): boolean;
37
31
  protected itemIsUnavailable(item: TuiDay): boolean;
38
- protected onItemClick(item: TuiDay): void;
39
32
  private getRange;
40
33
  private updateHoveredItem;
41
34
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendarSheet, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarSheet, "tui-calendar-sheet", never, { "month": { "alias": "month"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "markerHandler": { "alias": "markerHandler"; "required": false; }; "value": { "alias": "value"; "required": false; }; "hoveredItem": { "alias": "hoveredItem"; "required": false; }; "showAdjacent": { "alias": "showAdjacent"; "required": false; }; "single": { "alias": "single"; "required": false; }; }, { "hoveredItemChange": "hoveredItemChange"; "dayClick": "dayClick"; }, never, never, true, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarSheet, "tui-calendar-sheet", never, { "month": { "alias": "month"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; "markerHandler": { "alias": "markerHandler"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "showAdjacent": { "alias": "showAdjacent"; "required": false; "isSignal": true; }; "hoveredItem": { "alias": "hoveredItem"; "required": false; "isSignal": true; }; "single": { "alias": "single"; "required": false; }; }, { "hoveredItem": "hoveredItemChange"; "dayClick": "dayClick"; }, never, never, true, never>;
43
36
  }
@@ -1,33 +1,25 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { TuiDay, type TuiDayRange, TuiMonthRange, TuiYear } from '@taiga-ui/cdk/date-time';
3
2
  import { type TuiBooleanHandler } from '@taiga-ui/cdk/types';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class TuiCalendarYear {
6
5
  private readonly hoveredItem;
6
+ private readonly calculatedMin;
7
+ private readonly calculatedMax;
7
8
  protected readonly isRangePicking: import("@angular/core").Signal<boolean>;
8
- rangeMode: boolean;
9
- disabledItemHandler: TuiBooleanHandler<number>;
10
- readonly yearClick: EventEmitter<number>;
11
- readonly initialItem: import("@angular/core").WritableSignal<number>;
12
- readonly min: import("@angular/core").WritableSignal<number>;
13
- readonly max: import("@angular/core").WritableSignal<number>;
14
- readonly value: import("@angular/core").WritableSignal<number | TuiYear | readonly TuiDay[] | TuiDayRange | TuiMonthRange | null>;
15
- set initialItemSetter(x: number | null);
16
- set minSetter(x: number);
17
- set maxSetter(x: number);
18
- set valueSetter(x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null);
9
+ protected readonly rows: import("@angular/core").Signal<number>;
10
+ readonly rangeMode: import("@angular/core").InputSignal<boolean>;
11
+ readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<number>>;
12
+ readonly value: import("@angular/core").InputSignal<number | TuiYear | readonly TuiDay[] | TuiDayRange | TuiMonthRange | null>;
13
+ readonly min: import("@angular/core").InputSignalWithTransform<number, number | null>;
14
+ readonly max: import("@angular/core").InputSignalWithTransform<number, number | null>;
15
+ readonly initialItem: import("@angular/core").InputSignalWithTransform<number, number | null>;
16
+ readonly yearClick: import("@angular/core").OutputEmitterRef<number>;
19
17
  isDisabled(item: number): boolean;
20
18
  getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null;
21
19
  onItemHovered(hovered: boolean, item: number): void;
22
- protected get rows(): number;
23
20
  protected scrollItemIntoView(item: number): boolean;
24
21
  protected getItem(rowIndex: number, colIndex: number): number;
25
22
  protected itemIsToday(item: number): boolean;
26
- private get calculatedMin();
27
- private get calculatedMax();
28
23
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendarYear, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "rangeMode": { "alias": "rangeMode"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "initialItemSetter": { "alias": "initialItem"; "required": false; }; "minSetter": { "alias": "min"; "required": false; }; "maxSetter": { "alias": "max"; "required": false; }; "valueSetter": { "alias": "value"; "required": false; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
30
- static ngAcceptInputType_initialItemSetter: number | null;
31
- static ngAcceptInputType_minSetter: number | null;
32
- static ngAcceptInputType_maxSetter: number | null;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "rangeMode": { "alias": "rangeMode"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "initialItem": { "alias": "initialItem"; "required": false; "isSignal": true; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
33
25
  }
@@ -19,6 +19,7 @@ export declare class TuiDataListComponent<T> implements TuiDataListAccessor<T>,
19
19
  onKeyDownArrow(current: HTMLElement, step: number): void;
20
20
  handleFocusLossIfNecessary(element?: Element): void;
21
21
  ngAfterContentChecked(): void;
22
+ protected get role(): string | null;
22
23
  protected onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void;
23
24
  private get elements();
24
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDataListComponent<any>, never>;
@@ -1,6 +1,7 @@
1
1
  import { NgControl } from '@angular/forms';
2
2
  import { type TuiTextfieldAccessor, TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
3
3
  import { type TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
4
+ import { TuiDropdownDirective } from '@taiga-ui/core/portals/dropdown';
4
5
  import { type TuiInteractiveState } from '@taiga-ui/core/types';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
@@ -9,6 +10,7 @@ export declare class TuiInputDirective<T> implements TuiTextfieldAccessor<T> {
9
10
  protected readonly control: NgControl | null;
10
11
  protected readonly handlers: TuiItemsHandlers<T>;
11
12
  protected readonly textfield: TuiTextfieldComponent<any>;
13
+ protected readonly dropdown: TuiDropdownDirective;
12
14
  protected readonly a: import("@angular/core").Signal<string>;
13
15
  protected readonly s: import("@angular/core").Signal<TuiInteractiveState | null>;
14
16
  protected readonly m: import("@angular/core").Signal<string | readonly string[] | null>;
@@ -16,11 +16,11 @@ const [TUI_BUTTON_OPTIONS, tuiButtonOptionsProvider] = tuiCreateOptions(TUI_BUTT
16
16
 
17
17
  class Styles {
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]),[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]){--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);--t-gap: .25rem;--t-padding: 0 1.25rem;--t-margin: -.25rem;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;align-items:center;flex-shrink:0;box-sizing:border-box;white-space:nowrap;overflow:hidden;vertical-align:middle;max-inline-size:100%;gap:calc(var(--t-gap, 0rem) - 2 * var(--t-margin, 0rem));block-size:var(--t-size);justify-content:center;border-radius:var(--t-radius);padding:var(--t-padding);-webkit-user-select:none;user-select:none;cursor:pointer;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>img,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>img,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiAvatar],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiAvatar],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-badge,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-badge,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiBadge],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiBadge],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiRadio],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiRadio],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiSwitch],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiSwitch],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiCheckbox],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiCheckbox],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:after{margin:var(--t-margin)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader .t-text,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader .t-text{position:absolute}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);--t-gap: .125rem;--t-padding: 0 .375rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);--t-gap: .125rem;--t-padding: 0 .625rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=m],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);--t-gap: .125rem;--t-padding: 0 1rem;--t-margin: -.375rem;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>*,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:after{opacity:0}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>.t-loader{opacity:1}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]{--t-margin: 0rem !important;--t-line-height: 1rem;flex-direction:column;flex-shrink:1;block-size:auto;padding:.75rem;gap:.375rem;min-inline-size:5rem;white-space:pre-line;font:var(--tui-typography-ui-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]>*{max-block-size:calc(var(--t-line-height) * 2)}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]){gap:0;inline-size:var(--t-size);min-inline-size:var(--t-size);font-size:0!important;padding:0}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-icon-start]:after{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]),[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]){--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);--t-gap: .25rem;--t-padding: 0 1.25rem;--t-margin: -.25rem;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;align-items:center;flex-shrink:0;box-sizing:border-box;white-space:nowrap;overflow:hidden;vertical-align:middle;max-inline-size:100%;gap:calc(var(--t-gap, 0rem) - 2 * var(--t-margin, 0rem));block-size:var(--t-size);justify-content:center;border-radius:var(--t-radius);padding:var(--t-padding);-webkit-user-select:none;user-select:none;cursor:pointer;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>img,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>img,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiAvatar],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiAvatar],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-badge,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-badge,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiBadge],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiBadge],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiRadio],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiRadio],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiSwitch],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiSwitch],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiCheckbox],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiCheckbox],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:after{margin:var(--t-margin)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader .t-text,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader .t-text{position:absolute}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);--t-gap: .125rem;--t-padding: 0 .375rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);--t-gap: .125rem;--t-padding: 0 .625rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=m],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);--t-gap: .125rem;--t-padding: 0 1rem;--t-margin: -.375rem;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>*,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:after{opacity:0}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>.t-loader{opacity:1}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]{--t-margin: 0rem !important;--t-line-height: 1rem;flex-direction:column;flex-shrink:1;block-size:auto;padding:.75rem;gap:.375rem;min-inline-size:5rem;white-space:pre-line;font:var(--tui-typography-ui-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]>*{max-block-size:calc(var(--t-line-height) * 2)}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]){gap:0;inline-size:var(--t-size);min-inline-size:var(--t-size);font-size:0!important;padding:0}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-icon-start]:after{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Styles, decorators: [{
22
22
  type: Component,
23
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-button' }, styles: ["[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]),[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]){--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);--t-gap: .25rem;--t-padding: 0 1.25rem;--t-margin: -.25rem;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;align-items:center;flex-shrink:0;box-sizing:border-box;white-space:nowrap;overflow:hidden;vertical-align:middle;max-inline-size:100%;gap:calc(var(--t-gap, 0rem) - 2 * var(--t-margin, 0rem));block-size:var(--t-size);justify-content:center;border-radius:var(--t-radius);padding:var(--t-padding);-webkit-user-select:none;user-select:none;cursor:pointer;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>img,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>img,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiAvatar],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiAvatar],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-badge,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>tui-badge,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiBadge],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiBadge],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiRadio],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiRadio],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiSwitch],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiSwitch],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiCheckbox],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>[tuiCheckbox],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIcons]:after{margin:var(--t-margin)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader .t-text,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])>.t-loader .t-text{position:absolute}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);--t-gap: .125rem;--t-padding: 0 .375rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=xs]:after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);--t-gap: .125rem;--t-padding: 0 .625rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=m],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);--t-gap: .125rem;--t-padding: 0 1rem;--t-margin: -.375rem;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>*,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading:after{opacity:0}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])._loading>.t-loader{opacity:1}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]{--t-margin: 0rem !important;--t-line-height: 1rem;flex-direction:column;flex-shrink:1;block-size:auto;padding:.75rem;gap:.375rem;min-inline-size:5rem;white-space:pre-line;font:var(--tui-typography-ui-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiButtonVertical]>*{max-block-size:calc(var(--t-line-height) * 2)}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"]){gap:0;inline-size:var(--t-size);min-inline-size:var(--t-size);font-size:0!important;padding:0}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.df52b8a\"])[data-icon-start]:after{display:none}\n"] }]
23
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-button' }, styles: ["[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]),[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]){--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);--t-gap: .25rem;--t-padding: 0 1.25rem;--t-margin: -.25rem;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;align-items:center;flex-shrink:0;box-sizing:border-box;white-space:nowrap;overflow:hidden;vertical-align:middle;max-inline-size:100%;gap:calc(var(--t-gap, 0rem) - 2 * var(--t-margin, 0rem));block-size:var(--t-size);justify-content:center;border-radius:var(--t-radius);padding:var(--t-padding);-webkit-user-select:none;user-select:none;cursor:pointer;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>img,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>img,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiAvatar],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiAvatar],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-badge,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>tui-badge,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiBadge],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiBadge],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiRadio],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiRadio],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiSwitch],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiSwitch],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiCheckbox],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>[tuiCheckbox],[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIcons]:after{margin:var(--t-margin)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader .t-text,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])>.t-loader .t-text{position:absolute}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);--t-gap: .125rem;--t-padding: 0 .375rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=xs]:after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);--t-gap: .125rem;--t-padding: 0 .625rem;--t-margin: -.125rem;font:var(--tui-typography-body-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s] tui-icon,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s] tui-icon,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=s]:not([tuiIconButton][data-appearance=icon],[tuiIconButton][data-appearance^=action-]):after{font-size:1rem}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=m],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);--t-gap: .125rem;--t-padding: 0 1rem;--t-margin: -.375rem;font:var(--tui-typography-body-m);font-weight:700}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>*,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:before,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:before,[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:after,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading:after{opacity:0}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>.t-loader,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])._loading>.t-loader{opacity:1}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical],[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]{--t-margin: 0rem !important;--t-line-height: 1rem;flex-direction:column;flex-shrink:1;block-size:auto;padding:.75rem;gap:.375rem;min-inline-size:5rem;white-space:pre-line;font:var(--tui-typography-ui-s)}[tuiButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]>*,[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiButtonVertical]>*{max-block-size:calc(var(--t-line-height) * 2)}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"]){gap:0;inline-size:var(--t-size);min-inline-size:var(--t-size);font-size:0!important;padding:0}[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[tuiIconButton]:where(*[data-tui-version=\"5.0.0-canary.efd526e\"])[data-icon-start]:after{display:none}\n"] }]
24
24
  }] });
25
25
  class TuiButton {
26
26
  constructor() {
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, inject, Pipe, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, computed, ChangeDetectorRef } from '@angular/core';
2
+ import { signal, inject, Pipe, input, model, output, Input, ChangeDetectionStrategy, Component, EventEmitter, Output, computed, ChangeDetectorRef } from '@angular/core';
3
3
  import { TuiDayOfWeek, DAYS_IN_WEEK, TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange, TUI_LAST_DISPLAYED_DAY } from '@taiga-ui/cdk/date-time';
4
4
  import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
5
5
  import { tuiNullableSame, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
@@ -133,12 +133,13 @@ class TuiCalendarSheet {
133
133
  this.today = TuiDay.currentLocal();
134
134
  this.unorderedWeekDays$ = toObservable(inject(TUI_SHORT_WEEK_DAYS));
135
135
  this.dayType = inject(TUI_CALENDAR_OPTIONS).dayType;
136
- this.month = TuiMonth.currentLocal();
137
- this.disabledItemHandler = TUI_FALSE_HANDLER;
138
- this.markerHandler = null;
139
- this.value = null;
140
- this.hoveredItem = null;
141
- this.showAdjacent = true;
136
+ this.month = input(TuiMonth.currentLocal());
137
+ this.disabledItemHandler = input(TUI_FALSE_HANDLER);
138
+ this.markerHandler = input(null);
139
+ this.value = input(null);
140
+ this.showAdjacent = input(true);
141
+ this.hoveredItem = model(null);
142
+ this.dayClick = output();
142
143
  /**
143
144
  * @deprecated use static DI options instead
144
145
  * ```
@@ -147,8 +148,6 @@ class TuiCalendarSheet {
147
148
  * TODO(v5): delete it
148
149
  */
149
150
  this.single = true;
150
- this.hoveredItemChange = new EventEmitter();
151
- this.dayClick = new EventEmitter();
152
151
  this.toMarkers = (day, today, range, markerHandler) => {
153
152
  if (today || ['active', 'end', 'start'].includes(range || '')) {
154
153
  return null;
@@ -157,28 +156,11 @@ class TuiCalendarSheet {
157
156
  return markers?.length ? markers : null;
158
157
  };
159
158
  }
160
- /**
161
- * @deprecated TODO(v5): delete it. It is used nowhere except unit tests
162
- */
163
- itemIsInterval(day) {
164
- const { value, hoveredItem } = this;
165
- if (!(value instanceof TuiDayRange)) {
166
- return false;
167
- }
168
- if (!value.isSingleDay) {
169
- return value.from.daySameOrBefore(day) && value.to.dayAfter(day);
170
- }
171
- if (hoveredItem === null) {
172
- return false;
173
- }
174
- const range = TuiDayRange.sort(value.from, hoveredItem);
175
- return range.from.daySameOrBefore(day) && range.to.dayAfter(day);
176
- }
177
159
  onItemHovered(item) {
178
160
  this.updateHoveredItem(item || null);
179
161
  }
180
162
  getItemRange(item) {
181
- const { value, hoveredItem } = this;
163
+ const value = this.value();
182
164
  if (!value) {
183
165
  return null;
184
166
  }
@@ -191,7 +173,7 @@ class TuiCalendarSheet {
191
173
  if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {
192
174
  return value.find((day) => day.daySame(item)) ? 'active' : null;
193
175
  }
194
- const range = this.getRange(value, hoveredItem);
176
+ const range = this.getRange(value, this.hoveredItem());
195
177
  if (range.isSingleDay && range.from.daySame(item)) {
196
178
  return 'active';
197
179
  }
@@ -207,22 +189,20 @@ class TuiCalendarSheet {
207
189
  return !this.single || this.options.rangeMode;
208
190
  }
209
191
  get isRangePicking() {
192
+ const value = this.value();
210
193
  return this.computedRangeMode
211
- ? this.value instanceof TuiDay
194
+ ? value instanceof TuiDay
212
195
  : /**
213
196
  * Only for backward compatibility!
214
197
  * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`
215
198
  */
216
- this.value instanceof TuiDayRange && this.value.isSingleDay;
199
+ value instanceof TuiDayRange && value.isSingleDay;
217
200
  }
218
201
  itemIsToday(item) {
219
202
  return this.today.daySame(item);
220
203
  }
221
204
  itemIsUnavailable(item) {
222
- return !this.month.monthSame(item);
223
- }
224
- onItemClick(item) {
225
- this.dayClick.emit(item);
205
+ return !this.month().monthSame(item);
226
206
  }
227
207
  getRange(value, hoveredItem) {
228
208
  if (value instanceof TuiDay) {
@@ -233,14 +213,13 @@ class TuiCalendarSheet {
233
213
  : value;
234
214
  }
235
215
  updateHoveredItem(day) {
236
- if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {
216
+ if (tuiNullableSame(this.hoveredItem(), day, (a, b) => a.daySame(b))) {
237
217
  return;
238
218
  }
239
- this.hoveredItem = day;
240
- this.hoveredItemChange.emit(day);
219
+ this.hoveredItem.set(day);
241
220
  }
242
221
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", 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 @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\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: dayType\"\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 }\n </div>\n }\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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-typography-body-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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, disabledItemHandler: { classPropertyName: "disabledItemHandler", publicName: "disabledItemHandler", isSignal: true, isRequired: false, transformFunction: null }, markerHandler: { classPropertyName: "markerHandler", publicName: "markerHandler", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showAdjacent: { classPropertyName: "showAdjacent", publicName: "showAdjacent", isSignal: true, isRequired: false, transformFunction: null }, hoveredItem: { classPropertyName: "hoveredItem", publicName: "hoveredItem", isSignal: true, isRequired: false, transformFunction: null }, single: { classPropertyName: "single", publicName: "single", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { hoveredItem: "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 @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\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: dayType\"\n [class.t-cell_disabled]=\"disabledItemHandler()(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"dayClick.emit(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 }\n </div>\n }\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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-typography-body-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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
244
223
  }
245
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendarSheet, decorators: [{
246
225
  type: Component,
@@ -250,25 +229,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
250
229
  TuiHovered,
251
230
  TuiMapperPipe,
252
231
  TuiOrderWeekDaysPipe,
253
- ], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class._picking]': 'isRangePicking' }, 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 @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\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: dayType\"\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 }\n </div>\n }\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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-typography-body-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"] }]
254
- }], propDecorators: { month: [{
255
- type: Input
256
- }], disabledItemHandler: [{
257
- type: Input
258
- }], markerHandler: [{
259
- type: Input
260
- }], value: [{
261
- type: Input
262
- }], hoveredItem: [{
263
- type: Input
264
- }], showAdjacent: [{
232
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class._picking]': 'isRangePicking' }, 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 @for (_ of '-'.repeat(sheet.length); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(sheet[rowIndex]?.length ?? 0); track $index) {\n @let item = sheet[rowIndex]?.[$index];\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: dayType\"\n [class.t-cell_disabled]=\"disabledItemHandler()(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"dayClick.emit(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 }\n </div>\n }\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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-typography-body-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"] }]
233
+ }], propDecorators: { single: [{
265
234
  type: Input
266
- }], single: [{
267
- type: Input
268
- }], hoveredItemChange: [{
269
- type: Output
270
- }], dayClick: [{
271
- type: Output
272
235
  }] } });
273
236
 
274
237
  class TuiCalendarSpin {
@@ -323,35 +286,36 @@ const CURRENT_YEAR = TuiMonth.currentLocal().year;
323
286
  class TuiCalendarYear {
324
287
  constructor() {
325
288
  this.hoveredItem = signal(null);
326
- this.isRangePicking = computed((x = this.value()) => this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth));
327
- this.rangeMode = false;
328
- this.disabledItemHandler = inject(TUI_ITEMS_HANDLERS).disabledItemHandler();
329
- this.yearClick = new EventEmitter();
330
- this.initialItem = signal(CURRENT_YEAR);
331
- this.min = signal(MIN_YEAR);
332
- this.max = signal(MAX_YEAR);
333
- this.value = signal(null);
334
- }
335
- // TODO(v5): use signal inputs
336
- set initialItemSetter(x) {
337
- this.initialItem.set(x ?? CURRENT_YEAR);
338
- }
339
- // TODO(v5): use signal inputs
340
- set minSetter(x) {
341
- this.min.set(x);
342
- }
343
- // TODO(v5): use signal inputs
344
- set maxSetter(x) {
345
- this.max.set(x);
346
- }
347
- // TODO(v5): use signal inputs
348
- set valueSetter(x) {
349
- this.value.set(x);
289
+ this.calculatedMin = computed(() => {
290
+ const initial = this.initialItem() - LIMIT;
291
+ const min = this.min() ?? MIN_YEAR;
292
+ return min > initial ? min : initial;
293
+ });
294
+ this.calculatedMax = computed(() => {
295
+ const initial = this.initialItem() + LIMIT;
296
+ const max = this.max() ?? MAX_YEAR;
297
+ return max < initial ? max + 1 : initial;
298
+ });
299
+ this.isRangePicking = computed((x = this.value()) => this.rangeMode() && (x instanceof TuiDay || x instanceof TuiMonth));
300
+ this.rows = computed(() => Math.ceil((this.calculatedMax() - this.calculatedMin()) / ITEMS_IN_ROW));
301
+ this.rangeMode = input(false);
302
+ this.disabledItemHandler = input(inject(TUI_ITEMS_HANDLERS).disabledItemHandler());
303
+ this.value = input(null);
304
+ this.min = input(MIN_YEAR, {
305
+ transform: (x) => x ?? MIN_YEAR,
306
+ });
307
+ this.max = input(MAX_YEAR, {
308
+ transform: (x) => x ?? MAX_YEAR,
309
+ });
310
+ this.initialItem = input(CURRENT_YEAR, {
311
+ transform: (x) => x ?? CURRENT_YEAR,
312
+ });
313
+ this.yearClick = output();
350
314
  }
351
315
  isDisabled(item) {
352
316
  return ((this.max() && this.max() < item) ||
353
317
  (this.min() && this.min() > item) ||
354
- this.disabledItemHandler(item));
318
+ this.disabledItemHandler()(item));
355
319
  }
356
320
  getItemRange(item) {
357
321
  const value = this.value();
@@ -384,53 +348,22 @@ class TuiCalendarYear {
384
348
  onItemHovered(hovered, item) {
385
349
  this.hoveredItem.set(hovered ? item : null);
386
350
  }
387
- get rows() {
388
- return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);
389
- }
390
351
  scrollItemIntoView(item) {
391
352
  return this.initialItem() === item;
392
353
  }
393
354
  getItem(rowIndex, colIndex) {
394
- return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;
355
+ return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin();
395
356
  }
396
357
  itemIsToday(item) {
397
358
  return CURRENT_YEAR === item;
398
359
  }
399
- get calculatedMin() {
400
- const initial = this.initialItem() - LIMIT;
401
- const min = this.min() ?? MIN_YEAR;
402
- return min > initial ? min : initial;
403
- }
404
- get calculatedMax() {
405
- const initial = this.initialItem() + LIMIT;
406
- const max = this.max() ?? MAX_YEAR;
407
- return max < initial ? max + 1 : initial;
408
- }
409
360
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
410
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", 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: "@for (_ of '-'.repeat(rows); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\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 }\n </div>\n}\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
361
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: { classPropertyName: "rangeMode", publicName: "rangeMode", isSignal: true, isRequired: false, transformFunction: null }, disabledItemHandler: { classPropertyName: "disabledItemHandler", publicName: "disabledItemHandler", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, initialItem: { classPropertyName: "initialItem", publicName: "initialItem", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "@for (_ of '-'.repeat(rows()); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\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 }\n </div>\n}\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
411
362
  }
412
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendarYear, decorators: [{
413
364
  type: Component,
414
- args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: { '[class._picking]': 'isRangePicking()' }, template: "@for (_ of '-'.repeat(rows); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\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 }\n </div>\n}\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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"] }]
415
- }], propDecorators: { rangeMode: [{
416
- type: Input
417
- }], disabledItemHandler: [{
418
- type: Input
419
- }], yearClick: [{
420
- type: Output
421
- }], initialItemSetter: [{
422
- type: Input,
423
- args: [{ alias: 'initialItem', transform: (x) => x ?? CURRENT_YEAR }]
424
- }], minSetter: [{
425
- type: Input,
426
- args: [{ alias: 'min', transform: (x) => x ?? MIN_YEAR }]
427
- }], maxSetter: [{
428
- type: Input,
429
- args: [{ alias: 'max', transform: (x) => x ?? MAX_YEAR }]
430
- }], valueSetter: [{
431
- type: Input,
432
- args: ['value']
433
- }] } });
365
+ args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: { '[class._picking]': 'isRangePicking()' }, template: "@for (_ of '-'.repeat(rows()); track $index) {\n @let rowIndex = $index;\n <div\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n >\n @for (_ of '-'.repeat(4); track $index) {\n @let item = getItem(rowIndex, $index);\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 }\n </div>\n}\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-typography-body-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;inset: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"] }]
366
+ }] });
434
367
 
435
368
  class TuiCalendar {
436
369
  constructor() {
@@ -520,7 +453,7 @@ class TuiCalendar {
520
453
  this.hoveredItemChange.emit(day);
521
454
  }
522
455
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
523
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-sheet-dialog){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "initialItem", "min", "max", "value"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
456
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-sheet-dialog){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "showAdjacent", "hoveredItem", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "value", "min", "max", "initialItem"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
524
457
  }
525
458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiCalendar, decorators: [{
526
459
  type: Component,