@taiga-ui/core 4.52.0-canary.bf9131e → 4.52.0-canary.c91900a

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 (172) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  4. package/components/calendar/calendar-spin.component.d.ts +1 -0
  5. package/components/data-list/data-list.component.d.ts +7 -11
  6. package/components/data-list/data-list.d.ts +2 -4
  7. package/components/data-list/data-list.tokens.d.ts +1 -5
  8. package/components/data-list/index.d.ts +0 -2
  9. package/components/data-list/opt-group.directive.d.ts +2 -2
  10. package/components/data-list/option/option-content.d.ts +6 -8
  11. package/components/data-list/option/option.directive.d.ts +7 -8
  12. package/components/dialog/dialog.component.d.ts +2 -3
  13. package/components/dialog/dialog.options.d.ts +2 -3
  14. package/components/dialog/dialog.providers.d.ts +1 -2
  15. package/components/dialog/index.d.ts +0 -1
  16. package/components/index.d.ts +0 -2
  17. package/components/link/link.directive.d.ts +2 -2
  18. package/components/link/link.options.d.ts +1 -3
  19. package/components/loader/loader.options.d.ts +1 -3
  20. package/components/modal/modal.component.d.ts +3 -3
  21. package/components/modal/modal.service.d.ts +3 -3
  22. package/components/notification/index.d.ts +3 -0
  23. package/components/notification/notification.component.d.ts +14 -0
  24. package/components/notification/notification.d.ts +3 -0
  25. package/components/notification/notification.directive.d.ts +7 -12
  26. package/components/notification/notification.options.d.ts +10 -7
  27. package/components/notification/notification.service.d.ts +17 -0
  28. package/components/root/root.component.d.ts +1 -1
  29. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  30. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  31. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  32. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  33. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -13
  34. package/components/textfield/textfield.component.d.ts +21 -34
  35. package/components/textfield/textfield.directive.d.ts +12 -19
  36. package/directives/{notification/notification.directive.d.ts → alert/alert.directive.d.ts} +3 -3
  37. package/directives/{notification/notification.service.d.ts → alert/alert.service.d.ts} +3 -3
  38. package/directives/alert/index.d.ts +2 -0
  39. package/directives/date-format/date-format.directive.d.ts +3 -7
  40. package/directives/dropdown/dropdown-hover.directive.d.ts +5 -10
  41. package/directives/dropdown/dropdown-hover.options.d.ts +1 -3
  42. package/directives/dropdown/dropdown-manual.directive.d.ts +2 -2
  43. package/directives/dropdown/dropdown-open.directive.d.ts +9 -12
  44. package/directives/dropdown/dropdown-position-sided.directive.d.ts +3 -3
  45. package/directives/dropdown/dropdown-position.directive.d.ts +5 -5
  46. package/directives/dropdown/dropdown-selection.directive.d.ts +4 -5
  47. package/directives/dropdown/dropdown.bindings.d.ts +0 -1
  48. package/directives/dropdown/dropdown.d.ts +1 -2
  49. package/directives/dropdown/dropdown.directive.d.ts +5 -6
  50. package/directives/dropdown/index.d.ts +0 -1
  51. package/directives/group/group.directive.d.ts +7 -7
  52. package/directives/group/group.options.d.ts +1 -3
  53. package/directives/index.d.ts +1 -1
  54. package/directives/number-format/number-format.directive.d.ts +3 -7
  55. package/fesm2022/taiga-ui-core-classes.mjs +6 -8
  56. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-calendar.mjs +14 -21
  58. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-data-list.mjs +44 -204
  60. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-core-components-dialog.mjs +8 -77
  62. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-error.mjs +2 -1
  64. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
  66. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-core-components-link.mjs +10 -16
  68. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-loader.mjs +3 -8
  70. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-modal.mjs +10 -10
  72. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components-notification.mjs +98 -41
  74. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-components-root.mjs +5 -7
  76. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +36 -45
  78. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-components-textfield.mjs +114 -224
  80. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-components.mjs +0 -2
  82. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-directives-alert.mjs +73 -0
  84. package/fesm2022/taiga-ui-core-directives-alert.mjs.map +1 -0
  85. package/fesm2022/taiga-ui-core-directives-appearance.mjs +6 -6
  86. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  88. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +110 -225
  90. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-directives-group.mjs +17 -29
  92. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-directives-hint.mjs +7 -9
  94. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-directives-icons.mjs +2 -2
  96. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +1 -4
  98. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  100. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-directives-popup.mjs +1 -1
  102. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-directives.mjs +1 -1
  104. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +23 -4
  105. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
  107. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
  109. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
  111. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +19 -13
  113. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
  115. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
  117. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
  119. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-tokens.mjs +22 -21
  121. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -22
  123. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +7 -16
  125. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  126. package/package.json +13 -22
  127. package/{utils/format/string-hash-to-hsl.d.ts → pipes/auto-color/auto-color.d.ts} +1 -1
  128. package/pipes/auto-color/index.d.ts +1 -0
  129. package/pipes/format-number/format-number.pipe.d.ts +6 -4
  130. package/pipes/index.d.ts +0 -1
  131. package/styles/components/link.less +1 -0
  132. package/styles/mixins/appearance.less +1 -1
  133. package/styles/mixins/mixins.less +0 -5
  134. package/styles/mixins/mixins.scss +0 -5
  135. package/styles/mixins/slider.scss +1 -2
  136. package/styles/theme/variables.less +2 -4
  137. package/tokens/common-icons.d.ts +1 -3
  138. package/tokens/date-format.d.ts +2 -3
  139. package/tokens/icons.d.ts +0 -4
  140. package/tokens/number-format.d.ts +2 -3
  141. package/types/index.d.ts +0 -2
  142. package/types/size.d.ts +0 -11
  143. package/utils/format/index.d.ts +0 -1
  144. package/utils/miscellaneous/get-duration.d.ts +2 -0
  145. package/utils/miscellaneous/index.d.ts +1 -1
  146. package/components/alert/alert.component.d.ts +0 -14
  147. package/components/alert/alert.directive.d.ts +0 -8
  148. package/components/alert/alert.interfaces.d.ts +0 -13
  149. package/components/alert/alert.service.d.ts +0 -11
  150. package/components/alert/alert.tokens.d.ts +0 -6
  151. package/components/alert/index.d.ts +0 -5
  152. package/components/data-list/data-list.directive.d.ts +0 -7
  153. package/components/data-list/option/option-legacy.component.d.ts +0 -24
  154. package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
  155. package/components/dialog/dialogs.component.d.ts +0 -8
  156. package/components/header/header.directive.d.ts +0 -17
  157. package/components/header/index.d.ts +0 -1
  158. package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
  159. package/directives/notification/index.d.ts +0 -2
  160. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -110
  161. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  162. package/fesm2022/taiga-ui-core-components-header.mjs +0 -42
  163. package/fesm2022/taiga-ui-core-components-header.mjs.map +0 -1
  164. package/fesm2022/taiga-ui-core-directives-notification.mjs +0 -73
  165. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +0 -1
  166. package/fesm2022/taiga-ui-core-pipes-month.mjs +0 -30
  167. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +0 -1
  168. package/pipes/month/index.d.ts +0 -1
  169. package/pipes/month/month.pipe.d.ts +0 -10
  170. package/types/range-state.d.ts +0 -4
  171. package/types/value-content-context.d.ts +0 -4
  172. package/utils/miscellaneous/to-animation-options.d.ts +0 -4
@@ -1,6 +1,5 @@
1
- import { type AfterContentChecked, ElementRef, type QueryList, ViewContainerRef } from '@angular/core';
1
+ import { ElementRef, type Signal, ViewContainerRef } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
- import { TuiControl } from '@taiga-ui/cdk/classes';
4
3
  import { type TuiContext } from '@taiga-ui/cdk/types';
5
4
  import { type TuiDataListHost } from '@taiga-ui/core/components/data-list';
6
5
  import { TuiDropdownDirective, TuiDropdownOpen } from '@taiga-ui/core/directives/dropdown';
@@ -9,51 +8,39 @@ import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
9
8
  import { type TuiTextfieldAccessor } from './textfield-accessor';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@taiga-ui/core/directives/dropdown";
12
- import * as i2 from "@taiga-ui/cdk/directives/transitioned";
13
- import * as i3 from "@taiga-ui/core/directives/icons";
14
- import * as i4 from "@taiga-ui/core/directives/items-handlers";
15
- import * as i5 from "@taiga-ui/core/components/data-list";
16
- export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>, AfterContentChecked {
17
- private readonly filler;
11
+ import * as i2 from "@taiga-ui/core/directives/icons";
12
+ import * as i3 from "@taiga-ui/core/directives/items-handlers";
13
+ import * as i4 from "@taiga-ui/core/components/data-list";
14
+ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T> {
18
15
  private readonly autoId;
19
16
  private readonly focusedIn;
20
- private readonly contentReady$;
21
- private readonly inputQuery;
22
- protected readonly ghost?: ElementRef<HTMLElement>;
23
- protected readonly label?: ElementRef<HTMLElement>;
24
- protected readonly auxiliaryQuery: QueryList<object>;
25
- protected readonly _input?: ElementRef<HTMLInputElement>;
26
- protected readonly open: import("@angular/core").WritableSignal<boolean>;
17
+ protected readonly ghost: Signal<ElementRef<HTMLElement> | undefined>;
27
18
  protected readonly dropdown: TuiDropdownDirective;
28
- protected readonly dropdownOpen: TuiDropdownOpen;
19
+ protected readonly open: TuiDropdownOpen;
29
20
  protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
30
- protected readonly clear: import("@angular/core").Signal<string>;
31
- protected readonly computedFiller: import("@angular/core").Signal<string>;
32
- protected readonly showFiller: import("@angular/core").Signal<boolean>;
33
- readonly vcr?: ViewContainerRef;
34
- readonly accessor?: TuiTextfieldAccessor<T>;
35
- readonly control?: NgControl;
36
- readonly cva?: TuiControl<unknown>;
37
- readonly input?: ElementRef<HTMLInputElement>;
38
- content: PolymorpheusContent<TuiContext<T>>;
39
- readonly focused: import("@angular/core").Signal<boolean>;
21
+ protected readonly clear: Signal<string>;
22
+ protected readonly label: Signal<ElementRef<any> | undefined>;
23
+ protected readonly computedFiller: Signal<string>;
24
+ protected readonly showFiller: Signal<boolean>;
25
+ protected readonly accessor: Signal<TuiTextfieldAccessor<T> | undefined>;
26
+ readonly vcr: Signal<ViewContainerRef | undefined>;
27
+ readonly control: Signal<NgControl | undefined>;
28
+ readonly auxiliaries: Signal<readonly null[]>;
29
+ readonly focused: Signal<boolean>;
40
30
  readonly options: import("./textfield.options").TuiTextfieldOptions;
41
31
  readonly el: HTMLElement;
32
+ readonly input: Signal<ElementRef<HTMLInputElement> | undefined>;
33
+ readonly content: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<T>>>;
34
+ readonly filler: import("@angular/core").InputSignal<string>;
42
35
  readonly value: import("@angular/core").WritableSignal<string>;
43
- readonly auxiliaries: import("@angular/core").Signal<readonly object[]>;
44
- set fillerSetter(filler: string);
36
+ constructor();
45
37
  get id(): string;
46
38
  get size(): TuiSizeL | TuiSizeS;
47
- ngAfterContentChecked(): void;
48
39
  handleOption(option: T): void;
49
40
  protected get hasLabel(): boolean;
50
41
  protected onResize({ contentRect }: ResizeObserverEntry): void;
51
42
  protected onIconClick(): void;
52
43
  protected onScroll(element: HTMLElement): void;
53
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBaseComponent<any>, never>;
54
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBaseComponent<any>, never, never, { "content": { "alias": "content"; "required": false; }; "fillerSetter": { "alias": "filler"; "required": false; }; }, {}, ["label", "_input", "accessor", "control", "cva", "input", "auxiliaryQuery"], never, true, never>;
55
- }
56
- export declare class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {
57
44
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldComponent<any>, never>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, {}, {}, never, ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiTransitioned; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }]>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "filler": { "alias": "filler"; "required": false; "isSignal": true; }; }, {}, ["label", "accessor", "control", "auxiliaries", "input"], ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithOptionContent; inputs: {}; outputs: {}; }]>;
59
46
  }
@@ -1,4 +1,3 @@
1
- import { type OnChanges } from '@angular/core';
2
1
  import { NgControl } from '@angular/forms';
3
2
  import { type TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
4
3
  import { type TuiInteractiveState } from '@taiga-ui/core/types';
@@ -7,30 +6,24 @@ import { type TuiTextfieldAccessor } from './textfield-accessor';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
9
8
  import * as i2 from "@taiga-ui/core/directives/appearance";
10
- export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {
11
- private readonly focused;
9
+ export declare class TuiTextfieldDirective<T> implements TuiTextfieldAccessor<T> {
10
+ protected readonly el: HTMLInputElement;
12
11
  protected readonly control: NgControl | null;
12
+ protected readonly handlers: TuiItemsHandlers<T>;
13
+ protected readonly textfield: TuiTextfieldComponent<any>;
13
14
  protected readonly a: import("@angular/core").Signal<string>;
14
- protected readonly s: import("@angular/core").WritableSignal<TuiInteractiveState | null>;
15
- protected readonly m: import("@angular/core").WritableSignal<string | readonly string[] | null>;
15
+ protected readonly s: import("@angular/core").Signal<TuiInteractiveState | null>;
16
+ protected readonly m: import("@angular/core").Signal<string | readonly string[] | null>;
16
17
  protected readonly f: import("@angular/core").Signal<boolean | null>;
17
- protected readonly el: HTMLInputElement;
18
- protected readonly handlers: TuiItemsHandlers<T>;
19
- protected readonly textfield: TuiTextfieldComponent<T>;
20
- readOnly: boolean;
21
- invalid: boolean | null;
18
+ readonly readOnly: import("@angular/core").InputSignal<boolean>;
19
+ readonly invalid: import("@angular/core").InputSignal<boolean | null>;
20
+ readonly focused: import("@angular/core").InputSignal<boolean | null>;
21
+ readonly state: import("@angular/core").InputSignal<TuiInteractiveState | null>;
22
22
  readonly value: import("@angular/core").WritableSignal<string>;
23
- set focusedSetter(focused: boolean | null);
24
- set stateSetter(state: TuiInteractiveState | null);
25
- get mode(): string | null;
26
- ngOnChanges(): void;
23
+ readonly mode: import("@angular/core").Signal<string | null>;
27
24
  setValue(value: T | null): void;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBase<any>, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBase<any>, never, never, { "readOnly": { "alias": "readOnly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "focusedSetter": { "alias": "focused"; "required": false; }; "stateSetter": { "alias": "state"; "required": false; }; }, {}, never, never, true, never>;
30
- }
31
- export declare class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {
32
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldDirective<any>, never>;
33
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDirective<any>, "input[tuiTextfield]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAppearance; inputs: {}; outputs: {}; }]>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDirective<any>, "input[tuiTextfield]", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "focused": { "alias": "focused"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAppearance; inputs: {}; outputs: {}; }]>;
34
27
  }
35
28
  export declare class TuiWithTextfield {
36
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithTextfield, never>;
@@ -3,9 +3,9 @@ export interface TuiPositionOptions {
3
3
  readonly block: 'end' | 'start';
4
4
  readonly inline: 'center' | 'end' | 'start';
5
5
  }
6
- export declare class TuiNotificationDirective {
6
+ export declare class TuiAlertDirective {
7
7
  protected readonly nothing: undefined;
8
8
  protected readonly context: TuiPositionOptions;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiNotificationDirective, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNotificationDirective, never, never, {}, {}, never, never, true, never>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiAlertDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiAlertDirective, never, never, {}, {}, never, never, true, never>;
11
11
  }
@@ -1,12 +1,12 @@
1
1
  import { TuiPortal } from '@taiga-ui/cdk/portals';
2
2
  import { type PolymorpheusComponent } from '@taiga-ui/polymorpheus';
3
3
  import * as i0 from "@angular/core";
4
- export declare abstract class TuiNotificationService<T, K = void> extends TuiPortal<T, K> {
4
+ export declare abstract class TuiAlertService<T, K = void> extends TuiPortal<T, K> {
5
5
  private readonly concurrency;
6
6
  private readonly current;
7
7
  private readonly queue;
8
8
  constructor(concurrency: number);
9
9
  protected add(component: PolymorpheusComponent<unknown>): () => void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiNotificationService<any, any>, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<TuiNotificationService<any, any>>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiAlertService<any, any>, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<TuiAlertService<any, any>>;
12
12
  }
@@ -0,0 +1,2 @@
1
+ export * from './alert.directive';
2
+ export * from './alert.service';
@@ -1,11 +1,7 @@
1
1
  import { type TuiDateFormatSettings } from '@taiga-ui/core/tokens';
2
- import { Observable } from 'rxjs';
3
2
  import * as i0 from "@angular/core";
4
- export declare class TuiDateFormat extends Observable<TuiDateFormatSettings> {
5
- private readonly settings;
6
- private readonly parent;
7
- constructor();
8
- set tuiDateFormat(format: Partial<TuiDateFormatSettings>);
3
+ export declare class TuiDateFormat {
4
+ readonly tuiDateFormat: import("@angular/core").InputSignal<Partial<TuiDateFormatSettings>>;
9
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDateFormat, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDateFormat, "[tuiDateFormat]", never, { "tuiDateFormat": { "alias": "tuiDateFormat"; "required": false; }; }, {}, never, never, true, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDateFormat, "[tuiDateFormat]", never, { "tuiDateFormat": { "alias": "tuiDateFormat"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
7
  }
@@ -1,25 +1,20 @@
1
1
  import { TuiDriver } from '@taiga-ui/core/classes';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TuiDropdownHover extends TuiDriver {
4
- private readonly dropdownHost?;
4
+ private readonly dropdownHost;
5
+ private hovered;
5
6
  private readonly el;
6
7
  private readonly doc;
7
8
  private readonly options;
8
9
  private readonly activeZone;
9
10
  private readonly open;
10
- /**
11
- * Dropdown can be removed not only via click/touch –
12
- * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.
13
- */
14
- private readonly dropdownExternalRemoval$;
15
11
  private readonly stream$;
16
- showDelay: number;
17
- hideDelay: number;
18
- hovered: boolean;
12
+ readonly tuiDropdownShowDelay: import("@angular/core").InputSignal<number>;
13
+ readonly tuiDropdownHideDelay: import("@angular/core").InputSignal<number>;
19
14
  readonly type = "dropdown";
20
15
  constructor();
21
16
  protected onClick(event: MouseEvent): void;
22
17
  private isHovered;
23
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownHover, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownHover, "[tuiDropdownHover]", never, { "showDelay": { "alias": "tuiDropdownShowDelay"; "required": false; }; "hideDelay": { "alias": "tuiDropdownHideDelay"; "required": false; }; }, {}, ["dropdownHost"], never, true, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownHover, "[tuiDropdownHover]", never, { "tuiDropdownShowDelay": { "alias": "tuiDropdownShowDelay"; "required": false; "isSignal": true; }; "tuiDropdownHideDelay": { "alias": "tuiDropdownHideDelay"; "required": false; "isSignal": true; }; }, {}, ["dropdownHost"], never, true, never>;
25
20
  }
@@ -1,4 +1,3 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
1
  export interface TuiDropdownHoverOptions {
3
2
  readonly hideDelay: number;
4
3
  readonly showDelay: number;
@@ -8,5 +7,4 @@ export declare const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions
8
7
  /**
9
8
  * Default parameters for dropdown hover directive
10
9
  */
11
- export declare const TUI_DROPDOWN_HOVER_OPTIONS: InjectionToken<TuiDropdownHoverOptions>;
12
- export declare function tuiDropdownHoverOptionsProvider(options: Partial<TuiDropdownHoverOptions>): Provider;
10
+ export declare const TUI_DROPDOWN_HOVER_OPTIONS: import("@angular/core").InjectionToken<TuiDropdownHoverOptions>, tuiDropdownHoverOptionsProvider: (item: Partial<TuiDropdownHoverOptions> | (() => Partial<TuiDropdownHoverOptions>)) => import("@angular/core").FactoryProvider;
@@ -2,8 +2,8 @@ import { type OnChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TuiDropdownManual implements OnChanges {
4
4
  private readonly driver;
5
- tuiDropdownManual: boolean | '';
5
+ readonly tuiDropdownManual: import("@angular/core").InputSignal<boolean | "">;
6
6
  ngOnChanges(): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownManual, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownManual, "[tuiDropdownManual]", never, { "tuiDropdownManual": { "alias": "tuiDropdownManual"; "required": false; }; }, {}, never, never, true, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownManual, "[tuiDropdownManual]", never, { "tuiDropdownManual": { "alias": "tuiDropdownManual"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
9
  }
@@ -1,22 +1,19 @@
1
- import { EventEmitter, type OnChanges } from '@angular/core';
2
- import { TuiDropdownDriver } from './dropdown.driver';
3
1
  import * as i0 from "@angular/core";
4
2
  import * as i1 from "@taiga-ui/cdk/directives/obscured";
5
3
  import * as i2 from "@taiga-ui/cdk/directives/active-zone";
6
- export declare class TuiDropdownOpen implements OnChanges {
7
- private readonly dropdownHost?;
4
+ export declare class TuiDropdownOpen {
5
+ private readonly dropdownHost;
8
6
  private readonly directive;
9
7
  private readonly el;
10
8
  private readonly obscured;
11
9
  private readonly activeZone;
10
+ private readonly driver;
12
11
  private readonly dropdown;
13
- tuiDropdownEnabled: boolean;
14
- tuiDropdownOpen: boolean | '';
15
- readonly tuiDropdownOpenChange: EventEmitter<boolean>;
16
- readonly driver: TuiDropdownDriver;
17
- readonly sub: import("rxjs").Subscription;
18
- readonly sync: import("rxjs").Subscription;
19
- ngOnChanges(): void;
12
+ readonly enabled: import("@angular/core").InputSignal<boolean>;
13
+ readonly open: import("@angular/core").ModelSignal<boolean>;
14
+ protected readonly driveEffect: import("@angular/core").EffectRef;
15
+ protected readonly syncSub: import("rxjs").Subscription;
16
+ protected readonly closeSub: import("rxjs").Subscription;
20
17
  toggle(open: boolean): void;
21
18
  protected onEsc(event: KeyboardEvent): void;
22
19
  protected onClick(target: HTMLElement): void;
@@ -29,5 +26,5 @@ export declare class TuiDropdownOpen implements OnChanges {
29
26
  private drive;
30
27
  private focusDropdown;
31
28
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownOpen, never>;
32
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "tuiDropdownEnabled": { "alias": "tuiDropdownEnabled"; "required": false; }; "tuiDropdownOpen": { "alias": "tuiDropdownOpen"; "required": false; }; }, { "tuiDropdownOpenChange": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiActiveZone; inputs: { "tuiActiveZoneParent": "tuiActiveZoneParent"; }; outputs: { "tuiActiveZoneChange": "tuiActiveZoneChange"; }; }]>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "enabled": { "alias": "tuiDropdownEnabled"; "required": false; "isSignal": true; }; "open": { "alias": "tuiDropdownOpen"; "required": false; "isSignal": true; }; }, { "open": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiActiveZone; inputs: { "tuiActiveZoneParent": "tuiActiveZoneParent"; }; outputs: { "tuiActiveZoneChange": "tuiActiveZoneChange"; }; }]>;
33
30
  }
@@ -6,10 +6,10 @@ export declare class TuiDropdownPositionSided extends TuiPositionAccessor {
6
6
  private readonly viewport;
7
7
  private readonly vertical;
8
8
  private previous;
9
- tuiDropdownSided: boolean | string;
10
- tuiDropdownSidedOffset: number;
9
+ readonly tuiDropdownSided: import("@angular/core").InputSignal<string | boolean>;
10
+ readonly tuiDropdownSidedOffset: import("@angular/core").InputSignal<number>;
11
11
  readonly type = "dropdown";
12
12
  getPosition(rect: DOMRect): TuiPoint;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownPositionSided, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownPositionSided, "[tuiDropdownSided]", never, { "tuiDropdownSided": { "alias": "tuiDropdownSided"; "required": false; }; "tuiDropdownSidedOffset": { "alias": "tuiDropdownSidedOffset"; "required": false; }; }, {}, never, never, true, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownPositionSided, "[tuiDropdownSided]", never, { "tuiDropdownSided": { "alias": "tuiDropdownSided"; "required": false; "isSignal": true; }; "tuiDropdownSidedOffset": { "alias": "tuiDropdownSidedOffset"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
15
  }
@@ -1,6 +1,6 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { TuiPositionAccessor, TuiRectAccessor } from '@taiga-ui/core/classes';
3
2
  import { type TuiPoint, type TuiVerticalDirection } from '@taiga-ui/core/types';
3
+ import { Subject } from 'rxjs';
4
4
  import { type TuiDropdownAlign } from './dropdown-options.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class TuiDropdownPosition extends TuiPositionAccessor {
@@ -8,12 +8,12 @@ export declare class TuiDropdownPosition extends TuiPositionAccessor {
8
8
  private readonly options;
9
9
  private readonly viewport;
10
10
  private previous?;
11
- readonly directionChange: EventEmitter<TuiVerticalDirection>;
11
+ readonly direction: Subject<TuiVerticalDirection>;
12
12
  readonly type = "dropdown";
13
- readonly accessor: TuiRectAccessor | null;
14
- emitDirection(direction: TuiVerticalDirection): void;
13
+ readonly accessor: TuiRectAccessor;
14
+ readonly tuiDropdownDirectionChange: import("@angular/core").OutputRef<TuiVerticalDirection>;
15
15
  getPosition({ width, height }: DOMRect): TuiPoint;
16
16
  getAlign(align: TuiDropdownAlign): TuiDropdownAlign;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownPosition, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownPosition, never, never, {}, { "directionChange": "tuiDropdownDirectionChange"; }, never, never, true, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownPosition, never, never, {}, { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }, never, never, true, never>;
19
19
  }
@@ -1,7 +1,6 @@
1
1
  import { type OnDestroy, ViewContainerRef } from '@angular/core';
2
2
  import { type TuiBooleanHandler } from '@taiga-ui/cdk/types';
3
3
  import { TuiDriver, type TuiRectAccessor } from '@taiga-ui/core/classes';
4
- import { BehaviorSubject } from 'rxjs';
5
4
  import { TuiDropdownDirective } from './dropdown.directive';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class TuiDropdownSelection extends TuiDriver implements TuiRectAccessor, OnDestroy {
@@ -10,13 +9,13 @@ export declare class TuiDropdownSelection extends TuiDriver implements TuiRectAc
10
9
  protected readonly vcr: ViewContainerRef;
11
10
  protected readonly dropdown: TuiDropdownDirective;
12
11
  protected readonly el: HTMLElement;
13
- protected readonly handler$: BehaviorSubject<TuiBooleanHandler<Range>>;
12
+ protected readonly handler: import("@angular/core").Signal<TuiBooleanHandler<Range>>;
14
13
  protected readonly stream$: import("rxjs").Observable<boolean>;
15
14
  protected range: Range;
16
- position: 'selection' | 'tag' | 'word';
17
15
  readonly type = "dropdown";
16
+ readonly tuiDropdownSelection: import("@angular/core").InputSignal<string | TuiBooleanHandler<Range>>;
17
+ readonly tuiDropdownSelectionPosition: import("@angular/core").InputSignal<"selection" | "tag" | "word">;
18
18
  constructor();
19
- set tuiDropdownSelection(visible: TuiBooleanHandler<Range> | string);
20
19
  getClientRect(): DOMRect;
21
20
  ngOnDestroy(): void;
22
21
  private get ghostHost();
@@ -39,5 +38,5 @@ export declare class TuiDropdownSelection extends TuiDriver implements TuiRectAc
39
38
  */
40
39
  private initGhost;
41
40
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownSelection, never>;
42
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownSelection, "[tuiDropdownSelection]", never, { "position": { "alias": "tuiDropdownSelectionPosition"; "required": false; }; "tuiDropdownSelection": { "alias": "tuiDropdownSelection"; "required": false; }; }, {}, never, never, true, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownSelection, "[tuiDropdownSelection]", never, { "tuiDropdownSelection": { "alias": "tuiDropdownSelection"; "required": false; "isSignal": true; }; "tuiDropdownSelectionPosition": { "alias": "tuiDropdownSelectionPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
43
42
  }
@@ -5,5 +5,4 @@ export declare function tuiDropdown(value: C | WritableSignal<C>): WritableSigna
5
5
  export declare function tuiDropdown(value: Signal<C>): Signal<C>;
6
6
  export declare function tuiDropdownEnabled(value: WritableSignal<boolean> | boolean): WritableSignal<boolean>;
7
7
  export declare function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;
8
- export declare function tuiDropdownOpen(): WritableSignal<boolean>;
9
8
  export {};
@@ -6,9 +6,8 @@ import { TuiDropdownContext } from './dropdown-context.directive';
6
6
  import { TuiDropdownHover } from './dropdown-hover.directive';
7
7
  import { TuiDropdownManual } from './dropdown-manual.directive';
8
8
  import { TuiDropdownOpen } from './dropdown-open.directive';
9
- import { TuiDropdownOpenLegacy } from './dropdown-open-legacy.directive';
10
9
  import { TuiDropdownOptionsDirective } from './dropdown-options.directive';
11
10
  import { TuiDropdownPosition } from './dropdown-position.directive';
12
11
  import { TuiDropdownPositionSided } from './dropdown-position-sided.directive';
13
12
  import { TuiDropdownSelection } from './dropdown-selection.directive';
14
- export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownOpenLegacy, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
13
+ export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
@@ -11,19 +11,18 @@ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy
11
11
  private readonly cdr;
12
12
  private readonly drivers;
13
13
  protected readonly sub: import("rxjs").Subscription;
14
+ protected readonly autoClose: import("@angular/core").EffectRef;
15
+ readonly ref: import("@angular/core").WritableSignal<ComponentRef<unknown> | null>;
14
16
  readonly el: HTMLElement;
15
17
  readonly type = "dropdown";
16
18
  readonly component: PolymorpheusComponent<any>;
17
- ref: import("@angular/core").WritableSignal<ComponentRef<unknown> | null>;
18
- readonly _content: import("@angular/core").WritableSignal<PolymorpheusContent<TuiContext<() => void>>>;
19
- set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>);
19
+ readonly tuiDropdown: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<() => void>>>;
20
+ readonly content: import("@angular/core").Signal<PolymorpheusContent<TuiContext<() => void>>>;
20
21
  get position(): 'absolute' | 'fixed';
21
- get content(): PolymorpheusContent<TuiContext<() => void>>;
22
- set content(x: PolymorpheusContent<TuiContext<() => void>>);
23
22
  ngAfterViewChecked(): void;
24
23
  ngOnDestroy(): void;
25
24
  getClientRect(): DOMRect;
26
25
  toggle(show: boolean): void;
27
26
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownDirective, never>;
28
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
29
28
  }
@@ -11,7 +11,6 @@ export * from './dropdown-hover.options';
11
11
  export * from './dropdown-limit-width';
12
12
  export * from './dropdown-manual.directive';
13
13
  export * from './dropdown-open.directive';
14
- export * from './dropdown-open-legacy.directive';
15
14
  export * from './dropdown-options.directive';
16
15
  export * from './dropdown-position.directive';
17
16
  export * from './dropdown-position-sided.directive';
@@ -1,12 +1,12 @@
1
- import { type TuiOrientation, type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
1
+ import { type TuiOrientation } from '@taiga-ui/core/types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TuiGroup {
4
- private readonly options;
4
+ protected readonly options: import("./group.options").TuiGroupOptions;
5
5
  protected readonly nothing: undefined;
6
- orientation: TuiOrientation;
7
- collapsed: boolean;
8
- rounded: boolean;
9
- size: TuiSizeL | TuiSizeS;
6
+ readonly orientation: import("@angular/core").InputSignal<TuiOrientation>;
7
+ readonly collapsed: import("@angular/core").InputSignal<boolean>;
8
+ readonly rounded: import("@angular/core").InputSignal<boolean>;
9
+ readonly size: import("@angular/core").InputSignal<"m" | "l" | "s">;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiGroup, never>;
11
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiGroup, "[tuiGroup]:not(ng-container)", never, { "orientation": { "alias": "orientation"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiGroup, "[tuiGroup]:not(ng-container)", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
12
  }
@@ -1,4 +1,3 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
1
  import { type TuiOrientation, type TuiSizeL } from '@taiga-ui/core/types';
3
2
  export interface TuiGroupOptions {
4
3
  readonly size: TuiSizeL;
@@ -7,5 +6,4 @@ export interface TuiGroupOptions {
7
6
  readonly orientation: TuiOrientation;
8
7
  }
9
8
  export declare const TUI_GROUP_DEFAULT_OPTIONS: TuiGroupOptions;
10
- export declare const TUI_GROUP_OPTIONS: InjectionToken<TuiGroupOptions>;
11
- export declare function tuiGroupOptionsProvider(options: Partial<TuiGroupOptions>): Provider;
9
+ export declare const TUI_GROUP_OPTIONS: import("@angular/core").InjectionToken<TuiGroupOptions>, tuiGroupOptionsProvider: (item: Partial<TuiGroupOptions> | (() => Partial<TuiGroupOptions>)) => import("@angular/core").FactoryProvider;
@@ -1,3 +1,4 @@
1
+ export * from '@taiga-ui/core/directives/alert';
1
2
  export * from '@taiga-ui/core/directives/appearance';
2
3
  export * from '@taiga-ui/core/directives/date-format';
3
4
  export * from '@taiga-ui/core/directives/dropdown';
@@ -5,7 +6,6 @@ export * from '@taiga-ui/core/directives/group';
5
6
  export * from '@taiga-ui/core/directives/hint';
6
7
  export * from '@taiga-ui/core/directives/icons';
7
8
  export * from '@taiga-ui/core/directives/items-handlers';
8
- export * from '@taiga-ui/core/directives/notification';
9
9
  export * from '@taiga-ui/core/directives/number-format';
10
10
  export * from '@taiga-ui/core/directives/popup';
11
11
  export * from '@taiga-ui/core/directives/title';
@@ -1,11 +1,7 @@
1
1
  import { type TuiNumberFormatSettings } from '@taiga-ui/core/tokens';
2
- import { Observable } from 'rxjs';
3
2
  import * as i0 from "@angular/core";
4
- export declare class TuiNumberFormat extends Observable<TuiNumberFormatSettings> {
5
- private readonly settings;
6
- private readonly parent;
7
- constructor();
8
- set tuiNumberFormat(format: Partial<TuiNumberFormatSettings>);
3
+ export declare class TuiNumberFormat {
4
+ readonly tuiNumberFormat: import("@angular/core").InputSignal<Partial<TuiNumberFormatSettings>>;
9
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiNumberFormat, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNumberFormat, "[tuiNumberFormat]", never, { "tuiNumberFormat": { "alias": "tuiNumberFormat"; "required": false; }; }, {}, never, never, true, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNumberFormat, "[tuiNumberFormat]", never, { "tuiNumberFormat": { "alias": "tuiNumberFormat"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
7
  }
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { SkipSelf, Optional, inject, DestroyRef, Directive } from '@angular/core';
3
- import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
3
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
4
+ import { coerceArray } from '@angular/cdk/coercion';
4
5
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
6
  import { Observable, merge, distinctUntilChanged } from 'rxjs';
6
7
 
@@ -18,7 +19,7 @@ function tuiProvideAccessor(provide, type, fallback) {
18
19
  };
19
20
  }
20
21
  function tuiFallbackAccessor(type) {
21
- return (accessors, fallback) => accessors?.find?.((accessor) => accessor !== fallback && accessor.type === type) || fallback;
22
+ return (accessors, fallback) => accessors?.find?.((accessor) => accessor !== fallback && accessor.type === type) || Object.create(fallback, { type: { value: type } });
22
23
  }
23
24
  function tuiPositionAccessorFor(type, fallback) {
24
25
  return tuiProvideAccessor(TuiPositionAccessor, type, fallback);
@@ -47,14 +48,11 @@ function tuiAsDriver(driver) {
47
48
  class TuiDriverDirective {
48
49
  constructor() {
49
50
  this.destroyRef = inject(DestroyRef);
50
- this.drivers = inject(TuiDriver, { self: true, optional: true }) || [];
51
- this.vehicles = inject(TuiVehicle, {
52
- self: true,
53
- optional: true,
54
- });
51
+ this.drivers = coerceArray(inject(TuiDriver, { self: true, optional: true }) || []);
52
+ this.vehicles = coerceArray(inject(TuiVehicle, { self: true, optional: true }) || []);
55
53
  }
56
54
  ngAfterViewInit() {
57
- const vehicle = this.vehicles?.find(({ type }) => type === this.type);
55
+ const vehicle = this.vehicles.find(({ type }) => type === this.type);
58
56
  merge(...this.drivers.filter(({ type }) => type === this.type))
59
57
  .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
60
58
  .subscribe((value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-classes.mjs","sources":["../../../projects/core/classes/accessors.ts","../../../projects/core/classes/vehicle.ts","../../../projects/core/classes/driver.ts","../../../projects/core/classes/taiga-ui-core-classes.ts"],"sourcesContent":["import {\n type AbstractType,\n type ExistingProvider,\n type FactoryProvider,\n Optional,\n SkipSelf,\n type Type,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\nexport abstract class TuiAccessor {\n public abstract readonly type: string;\n}\n\nexport abstract class TuiPositionAccessor extends TuiAccessor {\n /*\n * TODO @deprecated switching from DOMRect to HTMLElement in v5\n */\n public abstract getPosition(rect: DOMRect, element?: HTMLElement): TuiPoint;\n}\n\nexport abstract class TuiRectAccessor extends TuiAccessor {\n public abstract getClientRect(): DOMRect;\n}\n\nexport function tuiProvideAccessor<T extends TuiAccessor>(\n provide: AbstractType<T>,\n type: string,\n fallback: Type<T>,\n): FactoryProvider {\n return {\n provide,\n deps: [[new SkipSelf(), new Optional(), provide], fallback],\n useFactory: tuiFallbackAccessor<T>(type),\n };\n}\n\nexport function tuiFallbackAccessor<T extends TuiAccessor>(\n type: string,\n): (accessors: readonly T[] | null, fallback: T) => T {\n return (accessors, fallback) =>\n accessors?.find?.(\n (accessor) => accessor !== fallback && accessor.type === type,\n ) || fallback;\n}\n\nexport function tuiPositionAccessorFor(\n type: string,\n fallback: Type<TuiPositionAccessor>,\n): FactoryProvider {\n return tuiProvideAccessor(TuiPositionAccessor, type, fallback);\n}\n\nexport function tuiRectAccessorFor(\n type: string,\n fallback: Type<TuiRectAccessor>,\n): FactoryProvider {\n return tuiProvideAccessor(TuiRectAccessor, type, fallback);\n}\n\nexport function tuiAsPositionAccessor(\n accessor: Type<TuiPositionAccessor>,\n): ExistingProvider {\n return tuiProvide(TuiPositionAccessor, accessor, true);\n}\n\nexport function tuiAsRectAccessor(accessor: Type<TuiRectAccessor>): ExistingProvider {\n return tuiProvide(TuiRectAccessor, accessor, true);\n}\n","import {type ExistingProvider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport abstract class TuiVehicle {\n public abstract readonly type: string;\n public abstract toggle(value: boolean): void;\n}\n\nexport function tuiAsVehicle(vehicle: Type<TuiVehicle>): ExistingProvider {\n return tuiProvide(TuiVehicle, vehicle, true);\n}\n","import {\n type AfterViewInit,\n DestroyRef,\n Directive,\n type ExistingProvider,\n inject,\n type Type,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {distinctUntilChanged, merge, Observable} from 'rxjs';\n\nimport {TuiVehicle} from './vehicle';\n\nexport abstract class TuiDriver extends Observable<boolean> {\n public abstract readonly type: string;\n}\n\nexport function tuiAsDriver(driver: Type<TuiDriver>): ExistingProvider {\n return tuiProvide(TuiDriver, driver, true);\n}\n\n@Directive()\nexport abstract class TuiDriverDirective implements AfterViewInit {\n public abstract type: string;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly drivers: readonly TuiDriver[] =\n inject<any>(TuiDriver, {self: true, optional: true}) || [];\n\n private readonly vehicles: readonly TuiVehicle[] = inject<any>(TuiVehicle, {\n self: true,\n optional: true,\n });\n\n public ngAfterViewInit(): void {\n const vehicle = this.vehicles?.find(({type}) => type === this.type);\n\n merge(...this.drivers.filter(({type}) => type === this.type))\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n vehicle?.toggle(value);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-classes.mjs","sources":["../../../projects/core/classes/accessors.ts","../../../projects/core/classes/vehicle.ts","../../../projects/core/classes/driver.ts","../../../projects/core/classes/taiga-ui-core-classes.ts"],"sourcesContent":["import {\n type AbstractType,\n type ExistingProvider,\n type FactoryProvider,\n Optional,\n SkipSelf,\n type Type,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\nexport abstract class TuiAccessor {\n public abstract readonly type: string;\n}\n\nexport abstract class TuiPositionAccessor extends TuiAccessor {\n /*\n * TODO @deprecated switching from DOMRect to HTMLElement in v5\n */\n public abstract getPosition(rect: DOMRect, element?: HTMLElement): TuiPoint;\n}\n\nexport abstract class TuiRectAccessor extends TuiAccessor {\n public abstract getClientRect(): DOMRect;\n}\n\nexport function tuiProvideAccessor<T extends TuiAccessor>(\n provide: AbstractType<T>,\n type: string,\n fallback: Type<T>,\n): FactoryProvider {\n return {\n provide,\n deps: [[new SkipSelf(), new Optional(), provide], fallback],\n useFactory: tuiFallbackAccessor<T>(type),\n };\n}\n\nexport function tuiFallbackAccessor<T extends TuiAccessor>(\n type: string,\n): (accessors: readonly T[] | null, fallback: Omit<T, 'type'>) => T {\n return (accessors, fallback) =>\n accessors?.find?.(\n (accessor) => accessor !== fallback && accessor.type === type,\n ) || Object.create(fallback, {type: {value: type}});\n}\n\nexport function tuiPositionAccessorFor(\n type: string,\n fallback: Type<TuiPositionAccessor>,\n): FactoryProvider {\n return tuiProvideAccessor(TuiPositionAccessor, type, fallback);\n}\n\nexport function tuiRectAccessorFor(\n type: string,\n fallback: Type<TuiRectAccessor>,\n): FactoryProvider {\n return tuiProvideAccessor(TuiRectAccessor, type, fallback);\n}\n\nexport function tuiAsPositionAccessor(\n accessor: Type<TuiPositionAccessor>,\n): ExistingProvider {\n return tuiProvide(TuiPositionAccessor, accessor, true);\n}\n\nexport function tuiAsRectAccessor(accessor: Type<TuiRectAccessor>): ExistingProvider {\n return tuiProvide(TuiRectAccessor, accessor, true);\n}\n","import {type ExistingProvider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport abstract class TuiVehicle {\n public abstract readonly type: string;\n public abstract toggle(value: boolean): void;\n}\n\nexport function tuiAsVehicle(vehicle: Type<TuiVehicle>): ExistingProvider {\n return tuiProvide(TuiVehicle, vehicle, true);\n}\n","import {coerceArray} from '@angular/cdk/coercion';\nimport {\n type AfterViewInit,\n DestroyRef,\n Directive,\n type ExistingProvider,\n inject,\n type Type,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {distinctUntilChanged, merge, Observable} from 'rxjs';\n\nimport {TuiVehicle} from './vehicle';\n\nexport abstract class TuiDriver extends Observable<boolean> {\n public abstract readonly type: string;\n}\n\nexport function tuiAsDriver(driver: Type<TuiDriver>): ExistingProvider {\n return tuiProvide(TuiDriver, driver, true);\n}\n\n@Directive()\nexport abstract class TuiDriverDirective implements AfterViewInit {\n public abstract type: string;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly drivers = coerceArray(\n inject(TuiDriver, {self: true, optional: true}) || [],\n );\n\n private readonly vehicles = coerceArray(\n inject(TuiVehicle, {self: true, optional: true}) || [],\n );\n\n public ngAfterViewInit(): void {\n const vehicle = this.vehicles.find(({type}) => type === this.type);\n\n merge(...this.drivers.filter(({type}) => type === this.type))\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n vehicle?.toggle(value);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}