@taiga-ui/core 4.52.0-canary.a59c4d0 → 4.52.0-canary.b61d3d0

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 (123) hide show
  1. package/components/alert/alert.component.d.ts +3 -3
  2. package/components/alert/alert.interfaces.d.ts +2 -3
  3. package/components/alert/alert.service.d.ts +3 -2
  4. package/components/alert/alert.tokens.d.ts +1 -7
  5. package/components/alert/index.d.ts +0 -1
  6. package/components/data-list/data-list.component.d.ts +1 -1
  7. package/components/dialog/dialog.component.d.ts +1 -1
  8. package/components/dialog/dialog.directive.d.ts +4 -3
  9. package/components/dialog/dialog.service.d.ts +5 -2
  10. package/components/error/error.component.d.ts +1 -1
  11. package/components/index.d.ts +1 -0
  12. package/components/link/link.directive.d.ts +2 -2
  13. package/components/loader/loader.component.d.ts +7 -7
  14. package/components/modal/index.d.ts +2 -0
  15. package/components/modal/modal.component.d.ts +17 -0
  16. package/components/modal/modal.service.d.ts +13 -0
  17. package/components/notification/notification.directive.d.ts +7 -11
  18. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  19. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  20. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  21. package/components/spin-button/spin-button.component.d.ts +8 -9
  22. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -2
  23. package/components/textfield/textfield.component.d.ts +4 -5
  24. package/components/textfield/textfield.directive.d.ts +10 -13
  25. package/components/textfield/textfield.options.d.ts +8 -11
  26. package/directives/date-format/date-format.directive.d.ts +3 -7
  27. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  28. package/directives/hint/hint-describe.directive.d.ts +4 -6
  29. package/directives/hint/hint-host.directive.d.ts +2 -2
  30. package/directives/hint/hint-hover.directive.d.ts +3 -4
  31. package/directives/hint/hint-manual.directive.d.ts +2 -2
  32. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  33. package/directives/hint/hint-position.directive.d.ts +4 -5
  34. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  35. package/directives/hint/hint.component.d.ts +7 -6
  36. package/directives/hint/hint.directive.d.ts +9 -11
  37. package/directives/hint/index.d.ts +0 -2
  38. package/directives/index.d.ts +1 -0
  39. package/directives/notification/index.d.ts +2 -0
  40. package/directives/notification/notification.directive.d.ts +11 -0
  41. package/directives/notification/notification.service.d.ts +12 -0
  42. package/directives/number-format/number-format.directive.d.ts +3 -7
  43. package/fesm2022/taiga-ui-core-components-alert.mjs +40 -93
  44. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-core-components-calendar.mjs +7 -8
  46. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-components-data-list.mjs +4 -11
  48. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-components-dialog.mjs +31 -20
  50. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-core-components-error.mjs +2 -2
  52. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
  54. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-core-components-link.mjs +5 -7
  56. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-loader.mjs +12 -25
  58. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  60. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  61. package/fesm2022/taiga-ui-core-components-notification.mjs +12 -27
  62. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-root.mjs +3 -5
  64. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +35 -43
  66. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  68. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-textfield.mjs +52 -102
  70. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components.mjs +1 -0
  72. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-directives-appearance.mjs +0 -1
  74. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  76. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +3 -22
  78. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-directives-hint.mjs +94 -183
  80. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-directives-icons.mjs +0 -1
  82. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +2 -5
  84. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-directives-notification.mjs +73 -0
  86. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +1 -0
  87. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  88. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives-popup.mjs +2 -3
  90. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-directives.mjs +1 -0
  92. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -1
  94. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
  96. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
  98. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
  100. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +2 -2
  102. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
  104. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-pipes-month.mjs +2 -2
  106. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
  108. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-core-tokens.mjs +18 -8
  110. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +1 -1
  112. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  113. package/package.json +9 -1
  114. package/styles/mixins/mixins.less +0 -8
  115. package/styles/mixins/mixins.scss +0 -8
  116. package/tokens/date-format.d.ts +2 -3
  117. package/tokens/i18n.d.ts +7 -7
  118. package/tokens/number-format.d.ts +2 -3
  119. package/types/index.d.ts +0 -1
  120. package/components/alert/alerts.component.d.ts +0 -12
  121. package/directives/hint/hint.service.d.ts +0 -13
  122. package/directives/hint/hints.component.d.ts +0 -12
  123. package/types/portal-item.d.ts +0 -9
@@ -1,15 +1,17 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, Injectable, Directive, Optional, Self, SkipSelf, inject, Input, EventEmitter, Output, signal, INJECTOR, ChangeDetectionStrategy, Component, TemplateRef, NgZone, DestroyRef, ChangeDetectorRef } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { InjectionToken, Directive, Optional, Self, SkipSelf, inject, Input, input, output, INJECTOR, ChangeDetectionStrategy, Component, TemplateRef, signal, computed } from '@angular/core';
4
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
5
5
  import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
6
+ import * as i3 from '@taiga-ui/cdk/directives/active-zone';
7
+ import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
6
8
  import * as i2 from '@taiga-ui/cdk/directives/animated';
7
- import { TuiAnimated, TuiAnimatedParent } from '@taiga-ui/cdk/directives/animated';
9
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
8
10
  import { TuiHoveredService } from '@taiga-ui/cdk/directives/hovered';
9
11
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
10
12
  import { tuiInjectElement, tuiPointToClientRect } from '@taiga-ui/cdk/utils/dom';
11
13
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
12
- import { tuiProvide, tuiPure, tuiPx, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
14
+ import { tuiProvide, tuiPure, tuiSetSignal, tuiPx, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
13
15
  import { TuiDriverDirective, TuiDriver, tuiAsDriver, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsRectAccessor, tuiAsVehicle, tuiPositionAccessorFor, tuiRectAccessorFor } from '@taiga-ui/core/classes';
14
16
  import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
15
17
  import * as i1 from '@taiga-ui/core/directives/appearance';
@@ -17,11 +19,11 @@ import { tuiAppearance, TuiAppearance } from '@taiga-ui/core/directives/appearan
17
19
  import { TuiPositionService, TuiVisualViewportService } from '@taiga-ui/core/services';
18
20
  import { TUI_VIEWPORT } from '@taiga-ui/core/tokens';
19
21
  import { tuiOverrideOptions, tuiIsObscured } from '@taiga-ui/core/utils';
20
- import { PolymorpheusComponent, injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
21
- import { BehaviorSubject, Subject, merge, switchMap, of, delay, takeUntil, repeat, filter, map, tap, takeWhile, distinctUntilChanged, fromEvent, debounce, timer, startWith, skip } from 'rxjs';
22
- import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
22
+ import { PolymorpheusComponent, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
23
+ import { Subject, merge, switchMap, of, delay, takeUntil, repeat, filter, map, tap, takeWhile, distinctUntilChanged, fromEvent, debounce, timer, startWith, skip, BehaviorSubject } from 'rxjs';
24
+ import { TuiPopupService } from '@taiga-ui/core/directives/popup';
23
25
  import { DOCUMENT } from '@angular/common';
24
- import { tuiIfMap, tuiTypedFromEvent, tuiZonefreeScheduler, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
26
+ import { tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
25
27
  import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
26
28
 
27
29
  /**
@@ -31,31 +33,6 @@ const TUI_HINT_COMPONENT = new InjectionToken(ngDevMode ? 'TUI_HINT_COMPONENT' :
31
33
  factory: () => TuiHintComponent,
32
34
  });
33
35
 
34
- /**
35
- * Service for displaying hints/tooltips
36
- */
37
- class TuiHintService extends BehaviorSubject {
38
- constructor() {
39
- super([]);
40
- }
41
- add(directive) {
42
- this.next(this.value.concat(directive));
43
- }
44
- remove(directive) {
45
- if (this.value.includes(directive)) {
46
- this.next(this.value.filter((hint) => hint !== directive));
47
- }
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, providedIn: 'root' }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, decorators: [{
53
- type: Injectable,
54
- args: [{
55
- providedIn: 'root',
56
- }]
57
- }], ctorParameters: () => [] });
58
-
59
36
  class TuiHintDriver extends TuiDriverDirective {
60
37
  constructor() {
61
38
  super(...arguments);
@@ -65,10 +42,7 @@ class TuiHintDriver extends TuiDriverDirective {
65
42
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDriver, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
66
43
  }
67
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDriver, decorators: [{
68
- type: Directive,
69
- args: [{
70
- standalone: true,
71
- }]
45
+ type: Directive
72
46
  }] });
73
47
 
74
48
  const TUI_HINT_DIRECTIONS = [
@@ -130,7 +104,6 @@ class TuiHintOptionsDirective {
130
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOptionsDirective, decorators: [{
131
105
  type: Directive,
132
106
  args: [{
133
- standalone: true,
134
107
  selector: '[tuiHintContent]',
135
108
  providers: [tuiProvide(TUI_HINT_OPTIONS, TuiHintOptionsDirective)],
136
109
  }]
@@ -160,11 +133,11 @@ class TuiHintHover extends TuiDriver {
160
133
  this.options = inject(TUI_HINT_OPTIONS);
161
134
  this.visible = false;
162
135
  this.toggle$ = new Subject();
163
- this.stream$ = merge(this.toggle$.pipe(switchMap((visible) => this.isMobile
164
- ? of(visible)
165
- : of(visible).pipe(delay(visible ? 0 : this.tuiHintHideDelay))), takeUntil(this.hovered$), repeat()), this.hovered$.pipe(switchMap((visible) => this.isMobile
166
- ? of(visible)
167
- : of(visible).pipe(delay(visible ? this.tuiHintShowDelay : this.tuiHintHideDelay))), takeUntil(this.toggle$), repeat())).pipe(filter(() => this.enabled), map((value) => value &&
136
+ this.stream$ = merge(this.toggle$.pipe(switchMap((show) => this.isMobile
137
+ ? of(show)
138
+ : of(show).pipe(delay(show ? 0 : this.hideDelay()))), takeUntil(this.hovered$), repeat()), this.hovered$.pipe(switchMap((show) => this.isMobile
139
+ ? of(show)
140
+ : of(show).pipe(delay(show ? this.showDelay() : this.hideDelay()))), takeUntil(this.toggle$), repeat())).pipe(filter(() => this.enabled), map((value) => value &&
168
141
  (this.el.hasAttribute('tuiHintPointer') || !tuiIsObscured(this.el))), tap((visible) => {
169
142
  this.visible = visible;
170
143
  }));
@@ -172,8 +145,12 @@ class TuiHintHover extends TuiDriver {
172
145
  optional: true,
173
146
  skipSelf: true,
174
147
  });
175
- this.tuiHintShowDelay = this.options.showDelay;
176
- this.tuiHintHideDelay = this.options.hideDelay;
148
+ this.showDelay = input(this.options.showDelay, {
149
+ alias: 'tuiHintShowDelay',
150
+ });
151
+ this.hideDelay = input(this.options.hideDelay, {
152
+ alias: 'tuiHintHideDelay',
153
+ });
177
154
  this.type = 'hint';
178
155
  this.enabled = true;
179
156
  }
@@ -185,20 +162,15 @@ class TuiHintHover extends TuiDriver {
185
162
  this.toggle$.next(false);
186
163
  }
187
164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
188
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintHover, isStandalone: true, inputs: { tuiHintShowDelay: "tuiHintShowDelay", tuiHintHideDelay: "tuiHintHideDelay" }, providers: [tuiAsDriver(TuiHintHover), TuiHoveredService], exportAs: ["tuiHintHover"], usesInheritance: true, ngImport: i0 }); }
165
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintHover, isStandalone: true, inputs: { showDelay: { classPropertyName: "showDelay", publicName: "tuiHintShowDelay", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: "hideDelay", publicName: "tuiHintHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintHover), TuiHoveredService], exportAs: ["tuiHintHover"], usesInheritance: true, ngImport: i0 }); }
189
166
  }
190
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, decorators: [{
191
168
  type: Directive,
192
169
  args: [{
193
- standalone: true,
194
170
  providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],
195
171
  exportAs: 'tuiHintHover',
196
172
  }]
197
- }], ctorParameters: () => [], propDecorators: { tuiHintShowDelay: [{
198
- type: Input
199
- }], tuiHintHideDelay: [{
200
- type: Input
201
- }] } });
173
+ }], ctorParameters: () => [] });
202
174
 
203
175
  const GAP$1 = 8;
204
176
  const ARROW_OFFSET = 24;
@@ -212,14 +184,19 @@ class TuiHintPosition extends TuiPositionAccessor {
212
184
  this.viewport = inject(TUI_VIEWPORT);
213
185
  this.accessor = tuiFallbackAccessor('hint')(inject(TuiRectAccessor), inject(TuiHintDirective));
214
186
  this.points = TUI_HINT_DIRECTIONS.reduce((acc, direction) => ({ ...acc, [direction]: [0, 0] }), {});
215
- this.direction = inject(TUI_HINT_OPTIONS).direction;
216
- this.directionChange = new EventEmitter();
187
+ this.direction = input(inject(TUI_HINT_OPTIONS).direction, {
188
+ alias: 'tuiHintDirection',
189
+ });
190
+ this.directionChange = output({
191
+ alias: 'tuiHintDirectionChange',
192
+ });
217
193
  this.type = 'hint';
218
194
  }
219
195
  emitDirection(direction) {
220
196
  this.directionChange.emit(direction);
221
197
  }
222
198
  getPosition(rect, el) {
199
+ const direction = this.direction();
223
200
  const width = el?.clientWidth ?? rect.width;
224
201
  const height = el?.clientHeight ?? rect.height;
225
202
  const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;
@@ -250,14 +227,14 @@ class TuiHintPosition extends TuiPositionAccessor {
250
227
  this.points.right[LEFT] = this.points['right-top'][LEFT];
251
228
  this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];
252
229
  this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];
253
- const array = Array.isArray(this.direction) ? this.direction : [this.direction];
230
+ const array = Array.isArray(direction) ? direction : [direction];
254
231
  const priority = array.map((direction) => adjust(direction, rtl));
255
- const direction = priority
232
+ const updated = priority
256
233
  .concat(TUI_HINT_DIRECTIONS)
257
234
  .find((dir) => this.checkPosition(this.points[dir], width, height)) ||
258
235
  this.fallback;
259
- this.emitDirection(adjust(direction, rtl));
260
- return this.points[direction];
236
+ this.emitDirection(adjust(updated, rtl));
237
+ return this.points[updated];
261
238
  }
262
239
  get fallback() {
263
240
  return this.points.top[TOP] >
@@ -273,23 +250,14 @@ class TuiHintPosition extends TuiPositionAccessor {
273
250
  left + width < viewport.right - GAP$1);
274
251
  }
275
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
276
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintPosition, isStandalone: true, inputs: { direction: ["tuiHintDirection", "direction"] }, outputs: { directionChange: "tuiHintDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
253
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintPosition, isStandalone: true, inputs: { direction: { classPropertyName: "direction", publicName: "tuiHintDirection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { directionChange: "tuiHintDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
277
254
  }
278
255
  __decorate([
279
256
  tuiPure
280
257
  ], TuiHintPosition.prototype, "emitDirection", null);
281
258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, decorators: [{
282
- type: Directive,
283
- args: [{
284
- standalone: true,
285
- }]
286
- }], propDecorators: { direction: [{
287
- type: Input,
288
- args: ['tuiHintDirection']
289
- }], directionChange: [{
290
- type: Output,
291
- args: ['tuiHintDirectionChange']
292
- }], emitDirection: [] } });
259
+ type: Directive
260
+ }], propDecorators: { emitDirection: [] } });
293
261
  function adjust(direction, rtl) {
294
262
  if (rtl && direction.includes('left')) {
295
263
  return direction.replace('left', 'right');
@@ -302,18 +270,19 @@ function adjust(direction, rtl) {
302
270
 
303
271
  class TuiHintDirective {
304
272
  constructor() {
305
- this.service = inject(TuiHintService);
306
- this.appearance = inject(TUI_HINT_OPTIONS).appearance;
307
- this.visible = new EventEmitter();
308
- this.content = signal(null);
273
+ this.service = inject(TuiPopupService);
274
+ this.content = input(null, { alias: 'tuiHint' });
275
+ this.context = input(undefined, { alias: 'tuiHintContext' });
276
+ this.appearance = input(inject(TUI_HINT_OPTIONS).appearance, {
277
+ alias: 'tuiHintAppearance',
278
+ });
279
+ this.visible = output({ alias: 'tuiHintVisible' });
309
280
  this.component = inject((PolymorpheusComponent));
310
281
  this.el = tuiInjectElement();
311
- this.activeZone = inject(TuiActiveZone, { optional: true });
312
282
  this.type = 'hint';
313
283
  }
314
- set tuiHint(content) {
315
- this.content.set(content);
316
- if (!content) {
284
+ ngOnChanges() {
285
+ if (!this.content()) {
317
286
  this.toggle(false);
318
287
  }
319
288
  }
@@ -324,16 +293,18 @@ class TuiHintDirective {
324
293
  return this.el.getBoundingClientRect();
325
294
  }
326
295
  toggle(show) {
327
- if (show && this.content()) {
328
- this.service.add(this);
296
+ if (show && this.content() && !this.ref) {
297
+ this.ref = this.service.add(this.component);
298
+ this.visible.emit(true);
329
299
  }
330
- else {
331
- this.service.remove(this);
300
+ else if (this.ref) {
301
+ this.ref.destroy();
302
+ this.ref = undefined;
303
+ this.visible.emit(false);
332
304
  }
333
- this.visible.emit(show);
334
305
  }
335
306
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
336
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDirective, isStandalone: true, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: { context: ["tuiHintContext", "context"], appearance: ["tuiHintAppearance", "appearance"], tuiHint: "tuiHint" }, outputs: { visible: "tuiHintVisible" }, providers: [
307
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintDirective, isStandalone: true, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: { content: { classPropertyName: "content", publicName: "tuiHint", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "tuiHintContext", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "tuiHintAppearance", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "tuiHintVisible" }, providers: [
337
308
  tuiAsRectAccessor(TuiHintDirective),
338
309
  tuiAsVehicle(TuiHintDirective),
339
310
  {
@@ -341,12 +312,11 @@ class TuiHintDirective {
341
312
  deps: [TUI_HINT_COMPONENT, INJECTOR],
342
313
  useClass: PolymorpheusComponent,
343
314
  },
344
- ], hostDirectives: [{ directive: TuiHintDriver }, { directive: TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
315
+ ], usesOnChanges: true, hostDirectives: [{ directive: TuiHintDriver }, { directive: TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
345
316
  }
346
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, decorators: [{
347
318
  type: Directive,
348
319
  args: [{
349
- standalone: true,
350
320
  selector: '[tuiHint]:not(ng-container):not(ng-template)',
351
321
  providers: [
352
322
  tuiAsRectAccessor(TuiHintDirective),
@@ -370,18 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
370
340
  },
371
341
  ],
372
342
  }]
373
- }], propDecorators: { context: [{
374
- type: Input,
375
- args: ['tuiHintContext']
376
- }], appearance: [{
377
- type: Input,
378
- args: ['tuiHintAppearance']
379
- }], visible: [{
380
- type: Output,
381
- args: ['tuiHintVisible']
382
- }], tuiHint: [{
383
- type: Input
384
- }] } });
343
+ }] });
385
344
 
386
345
  class TuiHintPointer extends TuiHintHover {
387
346
  constructor() {
@@ -400,7 +359,6 @@ class TuiHintPointer extends TuiHintHover {
400
359
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPointer, decorators: [{
401
360
  type: Directive,
402
361
  args: [{
403
- standalone: true,
404
362
  selector: '[tuiHint][tuiHintPointer]',
405
363
  providers: [tuiAsRectAccessor(TuiHintPointer), tuiAsDriver(TuiHintPointer)],
406
364
  host: {
@@ -411,24 +369,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
411
369
 
412
370
  class TuiHintUnstyledComponent {
413
371
  constructor() {
414
- this.context = injectContext();
372
+ this.hint = inject(TuiHintDirective);
415
373
  }
416
374
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyledComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
375
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyledComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '<ng-container *polymorpheusOutlet="hint.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
418
376
  }
419
377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
420
378
  type: Component,
421
379
  args: [{
422
380
  imports: [PolymorpheusOutlet],
423
- template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
381
+ template: '<ng-container *polymorpheusOutlet="hint.content()" />',
424
382
  changeDetection: ChangeDetectionStrategy.OnPush,
425
383
  }]
426
384
  }] });
427
385
  class TuiHintUnstyled {
428
386
  constructor() {
429
387
  const hint = inject((TuiHintDirective));
430
- hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent);
431
- hint.content.set(inject((TemplateRef)));
388
+ tuiSetSignal(hint.content, inject((TemplateRef)));
389
+ hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent, inject(INJECTOR));
432
390
  }
433
391
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
434
392
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyled, isStandalone: true, selector: "ng-template[tuiHint]", ngImport: i0 }); }
@@ -436,7 +394,6 @@ class TuiHintUnstyled {
436
394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, decorators: [{
437
395
  type: Directive,
438
396
  args: [{
439
- standalone: true,
440
397
  selector: 'ng-template[tuiHint]',
441
398
  }]
442
399
  }], ctorParameters: () => [] });
@@ -456,7 +413,7 @@ class TuiHintComponent {
456
413
  this.viewport = inject(TUI_VIEWPORT);
457
414
  this.pointer = inject(TuiHintPointer, { optional: true });
458
415
  this.accessor = inject(TuiRectAccessor);
459
- this.hint = injectContext().$implicit;
416
+ this.hint = inject(TuiHintDirective);
460
417
  this.isMobile = inject(TUI_IS_MOBILE);
461
418
  this.content = this.hint.component.component === TuiHintUnstyledComponent
462
419
  ? signal('')
@@ -503,13 +460,13 @@ class TuiHintComponent {
503
460
  this.apply(tuiPx(Math.round(top)), tuiPx(Math.round(safeLeft)), Math.round((tuiClamp(beakTop, 0, clientHeight) / clientHeight) * 100), Math.round((tuiClamp(beakLeft, 0, clientWidth) / clientWidth) * 100));
504
461
  }
505
462
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
506
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintComponent, isStandalone: true, selector: "tui-hint", host: { listeners: { "document:click": "onClick($event.target)" }, properties: { "class._untouchable": "pointer", "class._mobile": "isMobile", "attr.tuiTheme": "theme" } }, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiAnimated }], ngImport: i0, template: `
463
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintComponent, isStandalone: true, selector: "tui-hint", host: { attributes: { "role": "tooltip" }, listeners: { "document:click": "onClick($event.target)" }, properties: { "class._untouchable": "pointer", "class._mobile": "isMobile", "attr.tuiTheme": "theme" } }, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiAnimated }, { directive: i3.TuiActiveZone }], ngImport: i0, template: `
507
464
  <ng-content />
508
465
  <span
509
- *polymorpheusOutlet="content() as text; context: hint.context"
466
+ *polymorpheusOutlet="content() as text; context: hint.context()"
510
467
  [innerHTML]="text"
511
468
  ></span>
512
- `, isInline: true, styles: [":host{position:absolute;max-inline-size:min(20rem,calc(100% - 1rem));padding:.75rem 1rem;background:var(--tui-background-accent-1);border-radius:var(--tui-radius-l);color:var(--tui-text-primary-on-accent-1);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;overflow-wrap:break-word;transform-origin:var(--t-left) var(--t-top);--tui-background-elevation-2: var(--tui-background-elevation-3)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}:host :host-context(tui-root._mobile).tui-enter{animation:tuiFade var(--tui-duration) ease-in-out,tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host :host-context(tui-root._mobile).tui-leave{animation:tuiFade var(--tui-duration) ease-in-out reverse,tuiScale var(--tui-duration) ease-in-out reverse}:host:before{content:\"\";position:absolute;top:var(--t-top);left:var(--t-left);inline-size:.75rem;block-size:.5rem;background:inherit;-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');transform:translate(-50%,-50%) rotate(var(--t-rotate))}:host._mobile{font:var(--tui-font-text-m)}:host._mobile:before{inline-size:1.5rem;block-size:1.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>')}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}:host ::ng-deep [tuiTitle]{margin-block-end:.75rem}:host ::ng-deep [tuiTitle]+footer{margin-block-start:.75rem}:host ::ng-deep [tuiIconButton][data-appearance=icon][data-size=xs]{float:inline-end;margin-inline-end:-.25rem}:host ::ng-deep img{display:block;border-radius:var(--tui-radius-m)}:host ::ng-deep footer{display:flex;justify-content:flex-end;gap:.5rem;inline-size:18rem;max-inline-size:100%;margin:1rem 0 .25rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
469
+ `, isInline: true, styles: [":host{position:absolute;max-inline-size:min(20rem,calc(100% - 1rem));padding:.75rem 1rem;background:var(--tui-background-accent-1);border-radius:var(--tui-radius-l);color:var(--tui-text-primary-on-accent-1);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;overflow-wrap:break-word;transform-origin:var(--t-left) var(--t-top);--tui-background-elevation-2: var(--tui-background-elevation-3)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}:host :host-context(tui-root._mobile).tui-enter{animation:tuiFade var(--tui-duration) ease-in-out,tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host :host-context(tui-root._mobile).tui-leave{animation:tuiFade var(--tui-duration) ease-in-out reverse,tuiScale var(--tui-duration) ease-in-out reverse}:host:before{content:\"\";position:absolute;top:var(--t-top);left:var(--t-left);inline-size:.75rem;block-size:.5rem;background:inherit;-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');transition:none;transform:translate(-50%,-50%) rotate(var(--t-rotate))}:host._mobile{font:var(--tui-font-text-m)}:host._mobile:before{inline-size:1.5rem;block-size:1.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>')}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}:host ::ng-deep [tuiTitle]{margin-block-end:.75rem}:host ::ng-deep [tuiTitle]+footer{margin-block-start:.75rem}:host ::ng-deep [tuiIconButton][data-appearance=icon][data-size=xs]{float:inline-end;margin-inline-end:-.25rem}:host ::ng-deep img{display:block;border-radius:var(--tui-radius-m)}:host ::ng-deep footer{display:flex;justify-content:flex-end;gap:.5rem;inline-size:18rem;max-inline-size:100%;margin:1rem 0 .25rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
513
470
  }
514
471
  __decorate([
515
472
  tuiPure
@@ -519,15 +476,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
519
476
  args: [{ selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
520
477
  <ng-content />
521
478
  <span
522
- *polymorpheusOutlet="content() as text; context: hint.context"
479
+ *polymorpheusOutlet="content() as text; context: hint.context()"
523
480
  [innerHTML]="text"
524
481
  ></span>
525
- `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [TuiAppearance, TuiAnimated], host: {
482
+ `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone], host: {
483
+ role: 'tooltip',
526
484
  '[class._untouchable]': 'pointer',
527
485
  '[class._mobile]': 'isMobile',
528
486
  '[attr.tuiTheme]': 'theme',
529
487
  '(document:click)': 'onClick($event.target)',
530
- }, styles: [":host{position:absolute;max-inline-size:min(20rem,calc(100% - 1rem));padding:.75rem 1rem;background:var(--tui-background-accent-1);border-radius:var(--tui-radius-l);color:var(--tui-text-primary-on-accent-1);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;overflow-wrap:break-word;transform-origin:var(--t-left) var(--t-top);--tui-background-elevation-2: var(--tui-background-elevation-3)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}:host :host-context(tui-root._mobile).tui-enter{animation:tuiFade var(--tui-duration) ease-in-out,tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host :host-context(tui-root._mobile).tui-leave{animation:tuiFade var(--tui-duration) ease-in-out reverse,tuiScale var(--tui-duration) ease-in-out reverse}:host:before{content:\"\";position:absolute;top:var(--t-top);left:var(--t-left);inline-size:.75rem;block-size:.5rem;background:inherit;-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');transform:translate(-50%,-50%) rotate(var(--t-rotate))}:host._mobile{font:var(--tui-font-text-m)}:host._mobile:before{inline-size:1.5rem;block-size:1.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>')}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}:host ::ng-deep [tuiTitle]{margin-block-end:.75rem}:host ::ng-deep [tuiTitle]+footer{margin-block-start:.75rem}:host ::ng-deep [tuiIconButton][data-appearance=icon][data-size=xs]{float:inline-end;margin-inline-end:-.25rem}:host ::ng-deep img{display:block;border-radius:var(--tui-radius-m)}:host ::ng-deep footer{display:flex;justify-content:flex-end;gap:.5rem;inline-size:18rem;max-inline-size:100%;margin:1rem 0 .25rem}\n"] }]
488
+ }, styles: [":host{position:absolute;max-inline-size:min(20rem,calc(100% - 1rem));padding:.75rem 1rem;background:var(--tui-background-accent-1);border-radius:var(--tui-radius-l);color:var(--tui-text-primary-on-accent-1);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;overflow-wrap:break-word;transform-origin:var(--t-left) var(--t-top);--tui-background-elevation-2: var(--tui-background-elevation-3)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade}:host :host-context(tui-root._mobile).tui-enter{animation:tuiFade var(--tui-duration) ease-in-out,tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host :host-context(tui-root._mobile).tui-leave{animation:tuiFade var(--tui-duration) ease-in-out reverse,tuiScale var(--tui-duration) ease-in-out reverse}:host:before{content:\"\";position:absolute;top:var(--t-top);left:var(--t-left);inline-size:.75rem;block-size:.5rem;background:inherit;-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.61336 1.69607L2.44882 2.96493C1.84795 3.61964 0.949361 3.99951 0.00053941 4C0.000359608 4 0.000179805 4 0 4C0.000179863 4 0.000359764 4 0.000539623 4C0.949362 4.00049 1.84795 4.38036 2.44882 5.03506L3.61336 6.30394C4.55981 7.33517 5.03303 7.85079 5.63254 7.96535C5.87433 8.01155 6.12436 8.01155 6.36616 7.96535C6.96567 7.85079 7.43889 7.33517 8.38534 6.30393L9.54988 5.03507C10.1511 4.37994 11.0505 4 12 4C11.0505 4 10.1511 3.62006 9.54988 2.96493L8.38534 1.69606C7.43889 0.664826 6.96567 0.149207 6.36616 0.0346517C6.12436 -0.0115506 5.87433 -0.0115506 5.63254 0.0346517C5.03303 0.149207 4.55981 0.664827 3.61336 1.69607Z\" /></svg>');transition:none;transform:translate(-50%,-50%) rotate(var(--t-rotate))}:host._mobile{font:var(--tui-font-text-m)}:host._mobile:before{inline-size:1.5rem;block-size:1.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 18\"><path d=\"M7.22854 3.81615L4.89971 6.6711C3.69732 8.14514 1.8988 9 0 9C1.8988 9 3.69732 9.85486 4.89971 11.3289L7.22854 14.1839L7.22854 14.1839C9.12123 16.5041 10.0676 17.6643 11.2665 17.922C11.75 18.026 12.25 18.026 12.7335 17.922C13.9324 17.6643 14.8788 16.5041 16.7715 14.1839L19.1003 11.3289C20.3027 9.85486 22.1012 9 24 9C22.1012 9 20.3027 8.14514 19.1003 6.6711L16.7715 3.81614C14.8788 1.49586 13.9324 0.335716 12.7335 0.0779663C12.25 -0.0259888 11.75 -0.0259888 11.2665 0.0779663C10.0676 0.335716 9.12123 1.49586 7.22854 3.81614L7.22854 3.81615Z\" /></svg>')}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}:host ::ng-deep [tuiTitle]{margin-block-end:.75rem}:host ::ng-deep [tuiTitle]+footer{margin-block-start:.75rem}:host ::ng-deep [tuiIconButton][data-appearance=icon][data-size=xs]{float:inline-end;margin-inline-end:-.25rem}:host ::ng-deep img{display:block;border-radius:var(--tui-radius-m)}:host ::ng-deep footer{display:flex;justify-content:flex-end;gap:.5rem;inline-size:18rem;max-inline-size:100%;margin:1rem 0 .25rem}\n"] }]
531
489
  }], ctorParameters: () => [], propDecorators: { apply: [] } });
532
490
 
533
491
  class TuiHintDescribe extends TuiDriver {
@@ -535,107 +493,87 @@ class TuiHintDescribe extends TuiDriver {
535
493
  super((subscriber) => this.stream$.subscribe(subscriber));
536
494
  this.doc = inject(DOCUMENT);
537
495
  this.el = tuiInjectElement();
538
- this.zone = inject(NgZone);
539
- this.id$ = new BehaviorSubject('');
540
- this.stream$ = this.id$.pipe(distinctUntilChanged(), tuiIfMap(() => fromEvent(this.doc, 'keydown', { capture: true }), tuiIsPresent), switchMap(() => this.focused
541
- ? of(false)
542
- : merge(tuiTypedFromEvent(this.doc, 'keyup'), tuiTypedFromEvent(this.element, 'blur')).pipe(map(() => this.focused))), debounce((visible) => visible ? timer(1000, tuiZonefreeScheduler(this.zone)) : of(null)), startWith(false), distinctUntilChanged(), skip(1), tuiZoneOptimized());
496
+ this.element = computed((id = this.id()) => id ? this.doc.querySelector(`#${id}`) || this.el : this.el);
497
+ this.id = input('', { alias: 'tuiHintDescribe' });
543
498
  this.type = 'hint';
544
- }
545
- set tuiHintDescribe(id) {
546
- this.id$.next(id || '');
547
- }
548
- get element() {
549
- const id = this.id$.value;
550
- return id ? this.doc.querySelector(`#${id}`) || this.el : this.el;
499
+ this.stream$ = toObservable(this.id).pipe(distinctUntilChanged(), tuiIfMap(() => fromEvent(this.doc, 'keydown', { capture: true }), tuiIsPresent), switchMap(() => this.focused
500
+ ? of(false)
501
+ : merge(tuiTypedFromEvent(this.doc, 'keyup'), tuiTypedFromEvent(this.element(), 'blur')).pipe(map(() => this.focused))), debounce((visible) => (visible ? timer(1000) : of(null))), startWith(false), distinctUntilChanged(), skip(1), tuiZoneOptimized());
551
502
  }
552
503
  get focused() {
553
- return tuiIsFocused(this.element);
504
+ return tuiIsFocused(this.element());
554
505
  }
555
506
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
556
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDescribe, isStandalone: true, selector: "[tuiHintDescribe]", inputs: { tuiHintDescribe: "tuiHintDescribe" }, providers: [tuiAsDriver(TuiHintDescribe)], usesInheritance: true, ngImport: i0 }); }
507
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintDescribe, isStandalone: true, selector: "[tuiHintDescribe]", inputs: { id: { classPropertyName: "id", publicName: "tuiHintDescribe", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintDescribe)], usesInheritance: true, ngImport: i0 }); }
557
508
  }
558
- __decorate([
559
- tuiPure
560
- ], TuiHintDescribe.prototype, "element", null);
561
509
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, decorators: [{
562
510
  type: Directive,
563
511
  args: [{
564
- standalone: true,
565
512
  selector: '[tuiHintDescribe]',
566
513
  providers: [tuiAsDriver(TuiHintDescribe)],
567
514
  }]
568
- }], ctorParameters: () => [], propDecorators: { tuiHintDescribe: [{
569
- type: Input
570
- }], element: [] } });
515
+ }], ctorParameters: () => [] });
571
516
 
572
517
  class TuiHintHost extends TuiRectAccessor {
573
518
  constructor() {
574
519
  super(...arguments);
520
+ this.tuiHintHost = input();
575
521
  this.type = 'hint';
576
522
  }
577
523
  getClientRect() {
578
- return this.tuiHintHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
524
+ return this.tuiHintHost()?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
579
525
  }
580
526
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
581
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintHost, isStandalone: true, selector: "[tuiHint][tuiHintHost]", inputs: { tuiHintHost: "tuiHintHost" }, providers: [tuiAsRectAccessor(TuiHintHost)], usesInheritance: true, ngImport: i0 }); }
527
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintHost, isStandalone: true, selector: "[tuiHint][tuiHintHost]", inputs: { tuiHintHost: { classPropertyName: "tuiHintHost", publicName: "tuiHintHost", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsRectAccessor(TuiHintHost)], usesInheritance: true, ngImport: i0 }); }
582
528
  }
583
529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, decorators: [{
584
530
  type: Directive,
585
531
  args: [{
586
- standalone: true,
587
532
  selector: '[tuiHint][tuiHintHost]',
588
533
  providers: [tuiAsRectAccessor(TuiHintHost)],
589
534
  }]
590
- }], propDecorators: { tuiHintHost: [{
591
- type: Input
592
- }] } });
535
+ }] });
593
536
 
594
537
  class TuiHintManual extends TuiDriver {
595
538
  constructor() {
596
539
  super((subscriber) => this.stream$.subscribe(subscriber));
597
540
  this.hover = inject(TuiHintHover);
598
541
  this.stream$ = new BehaviorSubject(false);
599
- this.tuiHintManual = false;
542
+ this.visible = input(false, { alias: 'tuiHintManual' });
600
543
  this.type = 'hint';
601
544
  this.hover.enabled = false;
602
545
  }
603
546
  ngOnChanges() {
604
- this.stream$.next(!!this.tuiHintManual);
605
- this.hover.enabled = this.tuiHintManual === null;
547
+ this.stream$.next(!!this.visible());
548
+ this.hover.enabled = this.visible() === null;
606
549
  }
607
550
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
608
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintManual, isStandalone: true, selector: "[tuiHint][tuiHintManual]", inputs: { tuiHintManual: "tuiHintManual" }, providers: [tuiAsDriver(TuiHintManual)], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
551
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintManual, isStandalone: true, selector: "[tuiHint][tuiHintManual]", inputs: { visible: { classPropertyName: "visible", publicName: "tuiHintManual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintManual)], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
609
552
  }
610
553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, decorators: [{
611
554
  type: Directive,
612
555
  args: [{
613
- standalone: true,
614
556
  selector: '[tuiHint][tuiHintManual]',
615
557
  providers: [tuiAsDriver(TuiHintManual)],
616
558
  }]
617
- }], ctorParameters: () => [], propDecorators: { tuiHintManual: [{
618
- type: Input
619
- }] } });
559
+ }], ctorParameters: () => [] });
620
560
 
621
561
  class TuiHintOverflow {
622
562
  constructor() {
623
563
  this.hint = inject(TuiHintDirective);
624
- this.tuiHintOverflow = '';
564
+ this.content = input('', { alias: 'tuiHintOverflow' });
625
565
  }
626
566
  onMouseEnter({ scrollWidth, clientWidth, textContent }) {
627
- this.hint.tuiHint =
628
- scrollWidth > clientWidth && this.tuiHintOverflow !== null
629
- ? this.tuiHintOverflow || textContent
630
- : '';
567
+ tuiSetSignal(this.hint.content, scrollWidth > clientWidth && this.content() !== null
568
+ ? this.content() || textContent
569
+ : '');
631
570
  }
632
571
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
633
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintOverflow, isStandalone: true, selector: "[tuiHintOverflow]", inputs: { tuiHintOverflow: "tuiHintOverflow" }, host: { listeners: { "mouseenter": "onMouseEnter($event.currentTarget)" } }, hostDirectives: [{ directive: TuiHintDirective, inputs: ["tuiHintAppearance", "tuiHintAppearance"] }], ngImport: i0 }); }
572
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintOverflow, isStandalone: true, selector: "[tuiHintOverflow]", inputs: { content: { classPropertyName: "content", publicName: "tuiHintOverflow", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter($event.currentTarget)" } }, hostDirectives: [{ directive: TuiHintDirective, inputs: ["tuiHintAppearance", "tuiHintAppearance"] }], ngImport: i0 }); }
634
573
  }
635
574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, decorators: [{
636
575
  type: Directive,
637
576
  args: [{
638
- standalone: true,
639
577
  selector: '[tuiHintOverflow]',
640
578
  hostDirectives: [
641
579
  {
@@ -647,9 +585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
647
585
  '(mouseenter)': 'onMouseEnter($event.currentTarget)',
648
586
  },
649
587
  }]
650
- }], propDecorators: { tuiHintOverflow: [{
651
- type: Input
652
- }] } });
588
+ }] });
653
589
 
654
590
  const TuiHint = [
655
591
  TuiHintComponent,
@@ -666,34 +602,9 @@ const TuiHint = [
666
602
  TuiHintPointer,
667
603
  ];
668
604
 
669
- class TuiHints {
670
- constructor() {
671
- this.hints$ = inject(TuiHintService);
672
- this.destroyRef = inject(DestroyRef);
673
- this.cdr = inject(ChangeDetectorRef);
674
- this.hints = [];
675
- }
676
- ngOnInit() {
677
- // Due to this view being parallel to app content, `markForCheck` from `async` pipe
678
- // can happen after view was checked, so calling `detectChanges` instead
679
- this.hints$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hints) => {
680
- this.hints = hints;
681
- this.cdr.detectChanges();
682
- });
683
- }
684
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHints, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
685
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiHints, isStandalone: true, selector: "tui-hints", host: { attributes: { "aria-live": "polite" } }, ngImport: i0, template: "@for (hint of hints; track hint) {\n <div\n role=\"tooltip\"\n tuiAnimatedParent\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n >\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\" />\n </div>\n}\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;block-size:0}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiActiveZone, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { kind: "directive", type: TuiAnimatedParent, selector: "[tuiAnimatedParent]" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
686
- }
687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHints, decorators: [{
688
- type: Component,
689
- args: [{ selector: 'tui-hints', imports: [PolymorpheusOutlet, TuiActiveZone, TuiAnimatedParent], changeDetection: ChangeDetectionStrategy.Default, host: {
690
- 'aria-live': 'polite',
691
- }, template: "@for (hint of hints; track hint) {\n <div\n role=\"tooltip\"\n tuiAnimatedParent\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n >\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\" />\n </div>\n}\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;block-size:0}\n"] }]
692
- }] });
693
-
694
605
  /**
695
606
  * Generated bundle index. Do not edit.
696
607
  */
697
608
 
698
- export { TUI_HINT_COMPONENT, TUI_HINT_DEFAULT_OPTIONS, TUI_HINT_DIRECTIONS, TUI_HINT_OPTIONS, TUI_HINT_PROVIDERS, TuiHint, TuiHintComponent, TuiHintDescribe, TuiHintDirective, TuiHintDriver, TuiHintHost, TuiHintHover, TuiHintManual, TuiHintOptionsDirective, TuiHintOverflow, TuiHintPointer, TuiHintPosition, TuiHintService, TuiHintUnstyled, TuiHintUnstyledComponent, TuiHints, tuiHintOptionsProvider };
609
+ export { TUI_HINT_COMPONENT, TUI_HINT_DEFAULT_OPTIONS, TUI_HINT_DIRECTIONS, TUI_HINT_OPTIONS, TUI_HINT_PROVIDERS, TuiHint, TuiHintComponent, TuiHintDescribe, TuiHintDirective, TuiHintDriver, TuiHintHost, TuiHintHover, TuiHintManual, TuiHintOptionsDirective, TuiHintOverflow, TuiHintPointer, TuiHintPosition, TuiHintUnstyled, TuiHintUnstyledComponent, tuiHintOptionsProvider };
699
610
  //# sourceMappingURL=taiga-ui-core-directives-hint.mjs.map