@taiga-ui/core 4.52.0-canary.e444d19 → 4.52.0-canary.ec0802b

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 (226) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/components/button/button.directive.d.ts +2 -2
  4. package/components/button/button.options.d.ts +1 -1
  5. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  6. package/components/cell/cell.directive.d.ts +9 -0
  7. package/components/cell/cell.options.d.ts +6 -0
  8. package/components/cell/index.d.ts +2 -0
  9. package/components/data-list/data-list.component.d.ts +7 -9
  10. package/components/data-list/opt-group.directive.d.ts +2 -2
  11. package/components/data-list/option/option.directive.d.ts +5 -6
  12. package/components/dialog/dialog.component.d.ts +6 -12
  13. package/components/dialog/dialog.directive.d.ts +5 -4
  14. package/components/dialog/dialog.factory.d.ts +1 -1
  15. package/components/dialog/dialog.options.d.ts +25 -0
  16. package/components/dialog/{dialog-close.service.d.ts → dialog.providers.d.ts} +2 -0
  17. package/components/dialog/dialog.service.d.ts +6 -3
  18. package/components/dialog/index.d.ts +2 -4
  19. package/components/error/error.component.d.ts +6 -8
  20. package/components/error/error.d.ts +4 -0
  21. package/components/error/error.directive.d.ts +19 -0
  22. package/components/error/error.pipe.d.ts +10 -0
  23. package/components/error/index.d.ts +3 -0
  24. package/components/expand/expand.component.d.ts +9 -28
  25. package/components/expand/index.d.ts +0 -2
  26. package/components/icon/icon.component.d.ts +1 -1
  27. package/components/index.d.ts +2 -2
  28. package/components/link/link.directive.d.ts +2 -2
  29. package/components/link/link.options.d.ts +1 -3
  30. package/components/loader/loader.component.d.ts +7 -7
  31. package/components/loader/loader.options.d.ts +1 -3
  32. package/components/modal/index.d.ts +2 -0
  33. package/components/modal/modal.component.d.ts +17 -0
  34. package/components/modal/modal.service.d.ts +13 -0
  35. package/components/notification/index.d.ts +3 -0
  36. package/components/notification/notification.component.d.ts +14 -0
  37. package/components/notification/notification.d.ts +3 -0
  38. package/components/notification/notification.directive.d.ts +7 -12
  39. package/components/notification/notification.options.d.ts +9 -7
  40. package/components/notification/notification.service.d.ts +17 -0
  41. package/components/root/root.component.d.ts +4 -6
  42. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  43. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  44. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  45. package/components/scrollbar/scrollbar.options.d.ts +1 -1
  46. package/components/spin-button/spin-button.component.d.ts +8 -9
  47. package/components/textfield/index.d.ts +1 -3
  48. package/components/textfield/textfield-content.directive.d.ts +3 -2
  49. package/components/textfield/textfield-icon.d.ts +3 -3
  50. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +5 -6
  51. package/components/textfield/textfield.component.d.ts +5 -7
  52. package/components/textfield/textfield.d.ts +2 -3
  53. package/components/textfield/textfield.directive.d.ts +11 -14
  54. package/components/textfield/textfield.options.d.ts +8 -11
  55. package/directives/alert/alert.directive.d.ts +11 -0
  56. package/directives/alert/alert.service.d.ts +12 -0
  57. package/directives/alert/index.d.ts +2 -0
  58. package/directives/appearance/appearance.directive.d.ts +5 -13
  59. package/directives/appearance/appearance.options.d.ts +1 -1
  60. package/directives/date-format/date-format.directive.d.ts +3 -7
  61. package/directives/dropdown/dropdown-content.directive.d.ts +9 -0
  62. package/directives/dropdown/dropdown-hover.options.d.ts +1 -3
  63. package/directives/dropdown/dropdown-position.directive.d.ts +1 -1
  64. package/directives/dropdown/dropdown.d.ts +2 -2
  65. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  66. package/directives/dropdown/index.d.ts +1 -3
  67. package/directives/group/group.options.d.ts +1 -3
  68. package/directives/hint/hint-describe.directive.d.ts +4 -6
  69. package/directives/hint/hint-host.directive.d.ts +2 -2
  70. package/directives/hint/hint-hover.directive.d.ts +3 -4
  71. package/directives/hint/hint-manual.directive.d.ts +2 -2
  72. package/directives/hint/hint-options.directive.d.ts +3 -3
  73. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  74. package/directives/hint/hint-position.directive.d.ts +4 -5
  75. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  76. package/directives/hint/hint.component.d.ts +10 -11
  77. package/directives/hint/hint.directive.d.ts +9 -11
  78. package/directives/hint/index.d.ts +0 -2
  79. package/directives/icons/icons.bindings.d.ts +5 -0
  80. package/directives/icons/icons.directive.d.ts +6 -14
  81. package/directives/icons/index.d.ts +1 -0
  82. package/directives/index.d.ts +1 -1
  83. package/directives/number-format/number-format.directive.d.ts +3 -7
  84. package/directives/popup/popup.directive.d.ts +6 -5
  85. package/directives/popup/popup.service.d.ts +1 -1
  86. package/directives/popup/popups.component.d.ts +2 -2
  87. package/directives/title/title.directive.d.ts +2 -3
  88. package/fesm2022/taiga-ui-core-classes.mjs +1 -1
  89. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-core-components-button.mjs +11 -18
  91. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-core-components-calendar.mjs +13 -18
  93. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  95. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  96. package/fesm2022/taiga-ui-core-components-data-list.mjs +41 -75
  97. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-components-dialog.mjs +66 -103
  99. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-components-error.mjs +108 -24
  101. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-components-expand.mjs +33 -131
  103. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-core-components-icon.mjs +3 -4
  105. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-core-components-label.mjs +6 -9
  107. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-core-components-link.mjs +14 -23
  109. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-core-components-loader.mjs +14 -32
  111. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  113. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  114. package/fesm2022/taiga-ui-core-components-notification.mjs +108 -65
  115. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-components-root.mjs +18 -49
  117. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +35 -43
  119. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  121. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-core-components-textfield.mjs +135 -277
  123. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-core-components.mjs +2 -2
  125. package/fesm2022/taiga-ui-core-directives-alert.mjs +73 -0
  126. package/fesm2022/taiga-ui-core-directives-alert.mjs.map +1 -0
  127. package/fesm2022/taiga-ui-core-directives-appearance.mjs +21 -59
  128. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  130. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  131. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +50 -114
  132. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  133. package/fesm2022/taiga-ui-core-directives-group.mjs +10 -17
  134. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  135. package/fesm2022/taiga-ui-core-directives-hint.mjs +117 -218
  136. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  137. package/fesm2022/taiga-ui-core-directives-icons.mjs +30 -41
  138. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +2 -5
  140. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  142. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  143. package/fesm2022/taiga-ui-core-directives-popup.mjs +13 -20
  144. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  145. package/fesm2022/taiga-ui-core-directives-title.mjs +11 -17
  146. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  147. package/fesm2022/taiga-ui-core-directives.mjs +1 -1
  148. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -1
  149. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  150. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
  151. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  152. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
  153. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  154. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
  155. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  156. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -12
  157. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  158. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
  159. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  160. package/fesm2022/taiga-ui-core-pipes-month.mjs +2 -2
  161. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  162. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
  163. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  164. package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
  165. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  166. package/fesm2022/taiga-ui-core-tokens.mjs +28 -21
  167. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  168. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -0
  169. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  170. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +50 -4
  171. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  172. package/package.json +19 -20
  173. package/pipes/format-number/format-number.pipe.d.ts +5 -3
  174. package/pipes/index.d.ts +0 -1
  175. package/styles/components/button.less +0 -2
  176. package/styles/components/icons.less +4 -4
  177. package/styles/components/link.less +1 -0
  178. package/styles/mixins/appearance.less +1 -1
  179. package/styles/mixins/mixins.less +0 -6
  180. package/styles/mixins/mixins.scss +0 -6
  181. package/styles/mixins/slider.less +21 -16
  182. package/styles/theme/variables.less +2 -4
  183. package/tokens/common-icons.d.ts +1 -3
  184. package/tokens/date-format.d.ts +2 -3
  185. package/tokens/i18n.d.ts +7 -7
  186. package/tokens/icon-resolver.d.ts +0 -4
  187. package/tokens/index.d.ts +1 -0
  188. package/tokens/number-format.d.ts +2 -3
  189. package/tokens/validation-errors.d.ts +4 -0
  190. package/types/index.d.ts +0 -1
  191. package/utils/miscellaneous/index.d.ts +1 -0
  192. package/utils/miscellaneous/provide-taiga.d.ts +13 -0
  193. package/components/alert/alert.component.d.ts +0 -15
  194. package/components/alert/alert.directive.d.ts +0 -7
  195. package/components/alert/alert.interfaces.d.ts +0 -12
  196. package/components/alert/alert.service.d.ts +0 -7
  197. package/components/alert/alert.tokens.d.ts +0 -12
  198. package/components/alert/alerts.component.d.ts +0 -12
  199. package/components/alert/index.d.ts +0 -6
  200. package/components/dialog/dialog.interfaces.d.ts +0 -34
  201. package/components/dialog/dialog.tokens.d.ts +0 -15
  202. package/components/dialog/dialogs.component.d.ts +0 -8
  203. package/components/expand/expand-content.directive.d.ts +0 -8
  204. package/components/expand/expand.d.ts +0 -6
  205. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  206. package/components/fullscreen/index.d.ts +0 -1
  207. package/components/textfield/select.directive.d.ts +0 -19
  208. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  209. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  210. package/directives/dropdown/dropdown.service.d.ts +0 -6
  211. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  212. package/directives/hint/hint.service.d.ts +0 -13
  213. package/directives/hint/hints.component.d.ts +0 -12
  214. package/directives/surface/index.d.ts +0 -1
  215. package/directives/surface/surface.directive.d.ts +0 -8
  216. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -149
  217. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  218. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -66
  219. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  220. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -50
  221. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
  222. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs +0 -29
  223. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs.map +0 -1
  224. package/pipes/fallback-src/fallback-src.pipe.d.ts +0 -9
  225. package/pipes/fallback-src/index.d.ts +0 -1
  226. package/types/portal-item.d.ts +0 -9
@@ -1,25 +1,30 @@
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, forwardRef, 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 i1 from '@taiga-ui/cdk/directives/animated';
7
- import { TuiAnimated, TuiAnimatedParent } from '@taiga-ui/cdk/directives/animated';
6
+ import * as i3 from '@taiga-ui/cdk/directives/active-zone';
7
+ import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
8
+ import * as i2 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';
13
- import { TuiDriverDirective, TuiDriver, tuiAsDriver, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsRectAccessor, tuiAsVehicle, tuiPositionAccessorFor, tuiRectAccessorFor } from '@taiga-ui/core/classes';
14
+ import { tuiProvide, tuiPure, tuiSetSignal, tuiPx, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
15
+ import { TuiDriverDirective, TuiDriver, tuiAsDriver, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsVehicle, tuiAsRectAccessor, tuiPositionAccessorFor, tuiRectAccessorFor } from '@taiga-ui/core/classes';
16
+ import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
17
+ import * as i1 from '@taiga-ui/core/directives/appearance';
18
+ import { tuiAppearance, TuiAppearance } from '@taiga-ui/core/directives/appearance';
14
19
  import { TuiPositionService, TuiVisualViewportService } from '@taiga-ui/core/services';
15
20
  import { TUI_VIEWPORT } from '@taiga-ui/core/tokens';
16
21
  import { tuiOverrideOptions, tuiIsObscured } from '@taiga-ui/core/utils';
17
- import { PolymorpheusComponent, injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
18
- import { BehaviorSubject, Subject, merge, switchMap, of, delay, takeUntil, repeat, filter, map, tap, takeWhile, distinctUntilChanged, fromEvent, debounce, timer, startWith, skip } from 'rxjs';
19
- 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';
20
25
  import { DOCUMENT } from '@angular/common';
21
- import { tuiIfMap, tuiTypedFromEvent, tuiZonefreeScheduler, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
22
- import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
26
+ import { tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
27
+ import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
23
28
 
24
29
  /**
25
30
  * A component to display a hint
@@ -28,31 +33,6 @@ const TUI_HINT_COMPONENT = new InjectionToken(ngDevMode ? 'TUI_HINT_COMPONENT' :
28
33
  factory: () => TuiHintComponent,
29
34
  });
30
35
 
31
- /**
32
- * Service for displaying hints/tooltips
33
- */
34
- class TuiHintService extends BehaviorSubject {
35
- constructor() {
36
- super([]);
37
- }
38
- add(directive) {
39
- this.next(this.value.concat(directive));
40
- }
41
- remove(directive) {
42
- if (this.value.includes(directive)) {
43
- this.next(this.value.filter((hint) => hint !== directive));
44
- }
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, providedIn: 'root' }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintService, decorators: [{
50
- type: Injectable,
51
- args: [{
52
- providedIn: 'root',
53
- }]
54
- }], ctorParameters: () => [] });
55
-
56
36
  class TuiHintDriver extends TuiDriverDirective {
57
37
  constructor() {
58
38
  super(...arguments);
@@ -62,10 +42,7 @@ class TuiHintDriver extends TuiDriverDirective {
62
42
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDriver, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
63
43
  }
64
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDriver, decorators: [{
65
- type: Directive,
66
- args: [{
67
- standalone: true,
68
- }]
45
+ type: Directive
69
46
  }] });
70
47
 
71
48
  const TUI_HINT_DIRECTIONS = [
@@ -127,7 +104,6 @@ class TuiHintOptionsDirective {
127
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOptionsDirective, decorators: [{
128
105
  type: Directive,
129
106
  args: [{
130
- standalone: true,
131
107
  selector: '[tuiHintContent]',
132
108
  providers: [tuiProvide(TUI_HINT_OPTIONS, TuiHintOptionsDirective)],
133
109
  }]
@@ -157,11 +133,11 @@ class TuiHintHover extends TuiDriver {
157
133
  this.options = inject(TUI_HINT_OPTIONS);
158
134
  this.visible = false;
159
135
  this.toggle$ = new Subject();
160
- this.stream$ = merge(this.toggle$.pipe(switchMap((visible) => this.isMobile
161
- ? of(visible)
162
- : of(visible).pipe(delay(visible ? 0 : this.tuiHintHideDelay))), takeUntil(this.hovered$), repeat()), this.hovered$.pipe(switchMap((visible) => this.isMobile
163
- ? of(visible)
164
- : 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 &&
165
141
  (this.el.hasAttribute('tuiHintPointer') || !tuiIsObscured(this.el))), tap((visible) => {
166
142
  this.visible = visible;
167
143
  }));
@@ -169,8 +145,12 @@ class TuiHintHover extends TuiDriver {
169
145
  optional: true,
170
146
  skipSelf: true,
171
147
  });
172
- this.tuiHintShowDelay = this.options.showDelay;
173
- 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
+ });
174
154
  this.type = 'hint';
175
155
  this.enabled = true;
176
156
  }
@@ -182,20 +162,15 @@ class TuiHintHover extends TuiDriver {
182
162
  this.toggle$.next(false);
183
163
  }
184
164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
185
- 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 }); }
186
166
  }
187
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, decorators: [{
188
168
  type: Directive,
189
169
  args: [{
190
- standalone: true,
191
170
  providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],
192
171
  exportAs: 'tuiHintHover',
193
172
  }]
194
- }], ctorParameters: () => [], propDecorators: { tuiHintShowDelay: [{
195
- type: Input
196
- }], tuiHintHideDelay: [{
197
- type: Input
198
- }] } });
173
+ }], ctorParameters: () => [] });
199
174
 
200
175
  const GAP$1 = 8;
201
176
  const ARROW_OFFSET = 24;
@@ -207,19 +182,24 @@ class TuiHintPosition extends TuiPositionAccessor {
207
182
  this.el = tuiInjectElement();
208
183
  this.offset = inject(TUI_IS_MOBILE) ? 16 : 8;
209
184
  this.viewport = inject(TUI_VIEWPORT);
210
- this.accessor = tuiFallbackAccessor('hint')(inject(TuiRectAccessor), inject(TuiHintDirective));
185
+ this.accessor = tuiFallbackAccessor('hint')(inject(TuiRectAccessor, { optional: true }), { getClientRect: () => this.el.getBoundingClientRect() });
211
186
  this.points = TUI_HINT_DIRECTIONS.reduce((acc, direction) => ({ ...acc, [direction]: [0, 0] }), {});
212
- this.direction = inject(TUI_HINT_OPTIONS).direction;
213
- 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
+ });
214
193
  this.type = 'hint';
215
194
  }
216
195
  emitDirection(direction) {
217
196
  this.directionChange.emit(direction);
218
197
  }
219
198
  getPosition(rect, el) {
199
+ const direction = this.direction();
220
200
  const width = el?.clientWidth ?? rect.width;
221
201
  const height = el?.clientHeight ?? rect.height;
222
- const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;
202
+ const hostRect = this.accessor.getClientRect();
223
203
  const leftCenter = hostRect.left + hostRect.width / 2;
224
204
  const topCenter = hostRect.top + hostRect.height / 2;
225
205
  const rtl = this.el.matches('[dir="rtl"] :scope');
@@ -247,14 +227,14 @@ class TuiHintPosition extends TuiPositionAccessor {
247
227
  this.points.right[LEFT] = this.points['right-top'][LEFT];
248
228
  this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];
249
229
  this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];
250
- const array = Array.isArray(this.direction) ? this.direction : [this.direction];
230
+ const array = Array.isArray(direction) ? direction : [direction];
251
231
  const priority = array.map((direction) => adjust(direction, rtl));
252
- const direction = priority
232
+ const updated = priority
253
233
  .concat(TUI_HINT_DIRECTIONS)
254
234
  .find((dir) => this.checkPosition(this.points[dir], width, height)) ||
255
235
  this.fallback;
256
- this.emitDirection(adjust(direction, rtl));
257
- return this.points[direction];
236
+ this.emitDirection(adjust(updated, rtl));
237
+ return this.points[updated];
258
238
  }
259
239
  get fallback() {
260
240
  return this.points.top[TOP] >
@@ -270,23 +250,14 @@ class TuiHintPosition extends TuiPositionAccessor {
270
250
  left + width < viewport.right - GAP$1);
271
251
  }
272
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
273
- 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 }); }
274
254
  }
275
255
  __decorate([
276
256
  tuiPure
277
257
  ], TuiHintPosition.prototype, "emitDirection", null);
278
258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, decorators: [{
279
- type: Directive,
280
- args: [{
281
- standalone: true,
282
- }]
283
- }], propDecorators: { direction: [{
284
- type: Input,
285
- args: ['tuiHintDirection']
286
- }], directionChange: [{
287
- type: Output,
288
- args: ['tuiHintDirectionChange']
289
- }], emitDirection: [] } });
259
+ type: Directive
260
+ }], propDecorators: { emitDirection: [] } });
290
261
  function adjust(direction, rtl) {
291
262
  if (rtl && direction.includes('left')) {
292
263
  return direction.replace('left', 'right');
@@ -299,18 +270,19 @@ function adjust(direction, rtl) {
299
270
 
300
271
  class TuiHintDirective {
301
272
  constructor() {
302
- this.service = inject(TuiHintService);
303
- this.appearance = inject(TUI_HINT_OPTIONS).appearance;
304
- this.visible = new EventEmitter();
305
- 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' });
306
280
  this.component = inject((PolymorpheusComponent));
307
281
  this.el = tuiInjectElement();
308
- this.activeZone = inject(TuiActiveZone, { optional: true });
309
282
  this.type = 'hint';
310
283
  }
311
- set tuiHint(content) {
312
- this.content.set(content);
313
- if (!content) {
284
+ ngOnChanges() {
285
+ if (!this.content()) {
314
286
  this.toggle(false);
315
287
  }
316
288
  }
@@ -321,32 +293,31 @@ class TuiHintDirective {
321
293
  return this.el.getBoundingClientRect();
322
294
  }
323
295
  toggle(show) {
324
- if (show && this.content()) {
325
- this.service.add(this);
296
+ if (show && this.content() && !this.ref) {
297
+ this.ref = this.service.add(this.component);
298
+ this.visible.emit(true);
326
299
  }
327
- else {
328
- this.service.remove(this);
300
+ else if (this.ref) {
301
+ this.ref.destroy();
302
+ this.ref = undefined;
303
+ this.visible.emit(false);
329
304
  }
330
- this.visible.emit(show);
331
305
  }
332
306
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
333
- 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: [
334
- tuiAsRectAccessor(TuiHintDirective),
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: [
335
308
  tuiAsVehicle(TuiHintDirective),
336
309
  {
337
310
  provide: PolymorpheusComponent,
338
311
  deps: [TUI_HINT_COMPONENT, INJECTOR],
339
312
  useClass: PolymorpheusComponent,
340
313
  },
341
- ], hostDirectives: [{ directive: TuiHintDriver }, { directive: TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
314
+ ], usesOnChanges: true, hostDirectives: [{ directive: TuiHintDriver }, { directive: TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
342
315
  }
343
316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, decorators: [{
344
317
  type: Directive,
345
318
  args: [{
346
- standalone: true,
347
319
  selector: '[tuiHint]:not(ng-container):not(ng-template)',
348
320
  providers: [
349
- tuiAsRectAccessor(TuiHintDirective),
350
321
  tuiAsVehicle(TuiHintDirective),
351
322
  {
352
323
  provide: PolymorpheusComponent,
@@ -367,18 +338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
367
338
  },
368
339
  ],
369
340
  }]
370
- }], propDecorators: { context: [{
371
- type: Input,
372
- args: ['tuiHintContext']
373
- }], appearance: [{
374
- type: Input,
375
- args: ['tuiHintAppearance']
376
- }], visible: [{
377
- type: Output,
378
- args: ['tuiHintVisible']
379
- }], tuiHint: [{
380
- type: Input
381
- }] } });
341
+ }] });
382
342
 
383
343
  class TuiHintPointer extends TuiHintHover {
384
344
  constructor() {
@@ -397,7 +357,6 @@ class TuiHintPointer extends TuiHintHover {
397
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPointer, decorators: [{
398
358
  type: Directive,
399
359
  args: [{
400
- standalone: true,
401
360
  selector: '[tuiHint][tuiHintPointer]',
402
361
  providers: [tuiAsRectAccessor(TuiHintPointer), tuiAsDriver(TuiHintPointer)],
403
362
  host: {
@@ -408,24 +367,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
408
367
 
409
368
  class TuiHintUnstyledComponent {
410
369
  constructor() {
411
- this.context = injectContext();
370
+ this.hint = inject(TuiHintDirective);
412
371
  }
413
372
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
414
- 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 }); }
373
+ 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 }); }
415
374
  }
416
375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
417
376
  type: Component,
418
377
  args: [{
419
378
  imports: [PolymorpheusOutlet],
420
- template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
379
+ template: '<ng-container *polymorpheusOutlet="hint.content()" />',
421
380
  changeDetection: ChangeDetectionStrategy.OnPush,
422
381
  }]
423
382
  }] });
424
383
  class TuiHintUnstyled {
425
384
  constructor() {
426
385
  const hint = inject((TuiHintDirective));
427
- hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent);
428
- hint.content.set(inject((TemplateRef)));
386
+ tuiSetSignal(hint.content, inject((TemplateRef)));
387
+ hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent, inject(INJECTOR));
429
388
  }
430
389
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
431
390
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyled, isStandalone: true, selector: "ng-template[tuiHint]", ngImport: i0 }); }
@@ -433,7 +392,6 @@ class TuiHintUnstyled {
433
392
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, decorators: [{
434
393
  type: Directive,
435
394
  args: [{
436
- standalone: true,
437
395
  selector: 'ng-template[tuiHint]',
438
396
  }]
439
397
  }], ctorParameters: () => [] });
@@ -442,11 +400,10 @@ const TUI_HINT_PROVIDERS = [
442
400
  TuiPositionService,
443
401
  TuiHoveredService,
444
402
  tuiPositionAccessorFor('hint', TuiHintPosition),
445
- tuiRectAccessorFor('hint', TuiHintDirective),
403
+ tuiRectAccessorFor('hint', forwardRef(() => TuiHintDirective)),
446
404
  ];
447
405
  const GAP = 8;
448
- // TODO(v5): remove base component after angular update
449
- class TuiHintBaseComponent {
406
+ class TuiHintComponent {
450
407
  constructor() {
451
408
  this.el = tuiInjectElement();
452
409
  this.hover = inject(TuiHintHover);
@@ -454,13 +411,15 @@ class TuiHintBaseComponent {
454
411
  this.viewport = inject(TUI_VIEWPORT);
455
412
  this.pointer = inject(TuiHintPointer, { optional: true });
456
413
  this.accessor = inject(TuiRectAccessor);
457
- this.hint = injectContext().$implicit;
414
+ this.hint = inject(TuiHintDirective);
458
415
  this.isMobile = inject(TUI_IS_MOBILE);
459
416
  this.content = this.hint.component.component === TuiHintUnstyledComponent
460
417
  ? signal('')
461
418
  : this.hint.content;
462
- this.appearance = this.hint.appearance ||
463
- this.hint.el.closest('[tuiTheme]')?.getAttribute('tuiTheme');
419
+ this.theme = this.hint.el
420
+ .closest('[tuiTheme]')
421
+ ?.getAttribute('tuiTheme');
422
+ this.appearance = tuiAppearance(this.hint.appearance);
464
423
  inject(TuiPositionService)
465
424
  .pipe(takeWhile(() => this.hint.el.isConnected), map((point) => this.vvs.correct(point)), takeUntilDestroyed())
466
425
  .subscribe({
@@ -498,154 +457,121 @@ class TuiHintBaseComponent {
498
457
  ]);
499
458
  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));
500
459
  }
501
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
502
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintBaseComponent, isStandalone: true, selector: "ng-component", host: { listeners: { "document:click": "onClick($event.target)" }, properties: { "class._untouchable": "pointer", "class._mobile": "isMobile", "attr.data-appearance": "appearance", "attr.tuiTheme": "appearance === \"dark\" ? \"light\" : null" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
503
- }
504
- __decorate([
505
- tuiPure
506
- ], TuiHintBaseComponent.prototype, "apply", null);
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintBaseComponent, decorators: [{
508
- type: Component,
509
- args: [{
510
- standalone: true,
511
- template: '',
512
- changeDetection: ChangeDetectionStrategy.OnPush,
513
- host: {
514
- '[class._untouchable]': 'pointer',
515
- '[class._mobile]': 'isMobile',
516
- '[attr.data-appearance]': 'appearance',
517
- '[attr.tuiTheme]': 'appearance === "dark" ? "light" : null',
518
- '(document:click)': 'onClick($event.target)',
519
- },
520
- }]
521
- }], ctorParameters: () => [], propDecorators: { apply: [] } });
522
- class TuiHintComponent extends TuiHintBaseComponent {
523
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
524
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintComponent, isStandalone: true, selector: "tui-hint", providers: TUI_HINT_PROVIDERS, usesInheritance: true, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: `
460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
461
+ 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: `
525
462
  <ng-content />
526
463
  <span
527
- *polymorpheusOutlet="content() as text; context: hint.context"
464
+ *polymorpheusOutlet="content() as text; context: hint.context()"
528
465
  [innerHTML]="text"
529
466
  ></span>
530
- `, isInline: true, styles: [":host{position:absolute;max-inline-size:min(18rem,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[data-appearance=error]{background:var(--tui-status-negative)}:host[data-appearance=dark]{background:var(--tui-background-elevation-1);color:var(--tui-text-primary);filter:drop-shadow(0 0 .125rem rgba(0,0,0,.16)) drop-shadow(0 1.5rem 1rem rgba(0,0,0,.03)) drop-shadow(0 .75rem .75rem rgba(0,0,0,.04)) drop-shadow(0 .25rem .375rem rgba(0,0,0,.05))}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
467
+ `, 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 }); }
531
468
  }
469
+ __decorate([
470
+ tuiPure
471
+ ], TuiHintComponent.prototype, "apply", null);
532
472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, decorators: [{
533
473
  type: Component,
534
474
  args: [{ selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
535
475
  <ng-content />
536
476
  <span
537
- *polymorpheusOutlet="content() as text; context: hint.context"
477
+ *polymorpheusOutlet="content() as text; context: hint.context()"
538
478
  [innerHTML]="text"
539
479
  ></span>
540
- `, changeDetection: ChangeDetectionStrategy.OnPush, providers: TUI_HINT_PROVIDERS, hostDirectives: [TuiAnimated], styles: [":host{position:absolute;max-inline-size:min(18rem,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[data-appearance=error]{background:var(--tui-status-negative)}:host[data-appearance=dark]{background:var(--tui-background-elevation-1);color:var(--tui-text-primary);filter:drop-shadow(0 0 .125rem rgba(0,0,0,.16)) drop-shadow(0 1.5rem 1rem rgba(0,0,0,.03)) drop-shadow(0 .75rem .75rem rgba(0,0,0,.04)) drop-shadow(0 .25rem .375rem rgba(0,0,0,.05))}:host:not([style*=top]){visibility:hidden}:host._untouchable{pointer-events:none}\n"] }]
541
- }] });
480
+ `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone], host: {
481
+ role: 'tooltip',
482
+ '[class._untouchable]': 'pointer',
483
+ '[class._mobile]': 'isMobile',
484
+ '[attr.tuiTheme]': 'theme',
485
+ '(document:click)': 'onClick($event.target)',
486
+ }, 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"] }]
487
+ }], ctorParameters: () => [], propDecorators: { apply: [] } });
542
488
 
543
489
  class TuiHintDescribe extends TuiDriver {
544
490
  constructor() {
545
491
  super((subscriber) => this.stream$.subscribe(subscriber));
546
492
  this.doc = inject(DOCUMENT);
547
493
  this.el = tuiInjectElement();
548
- this.zone = inject(NgZone);
549
- this.id$ = new BehaviorSubject('');
550
- this.stream$ = this.id$.pipe(distinctUntilChanged(), tuiIfMap(() => fromEvent(this.doc, 'keydown', { capture: true }), tuiIsPresent), switchMap(() => this.focused
551
- ? of(false)
552
- : 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());
494
+ this.element = computed((id = this.id()) => id ? this.doc.querySelector(`#${id}`) || this.el : this.el);
495
+ this.id = input('', { alias: 'tuiHintDescribe' });
553
496
  this.type = 'hint';
554
- }
555
- set tuiHintDescribe(id) {
556
- this.id$.next(id || '');
557
- }
558
- get element() {
559
- const id = this.id$.value;
560
- return id ? this.doc.querySelector(`#${id}`) || this.el : this.el;
497
+ this.stream$ = toObservable(this.id).pipe(distinctUntilChanged(), tuiIfMap(() => fromEvent(this.doc, 'keydown', { capture: true }), tuiIsPresent), switchMap(() => this.focused
498
+ ? of(false)
499
+ : 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());
561
500
  }
562
501
  get focused() {
563
- return tuiIsNativeFocused(this.element);
502
+ return tuiIsFocused(this.element());
564
503
  }
565
504
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
566
- 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 }); }
505
+ 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 }); }
567
506
  }
568
- __decorate([
569
- tuiPure
570
- ], TuiHintDescribe.prototype, "element", null);
571
507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, decorators: [{
572
508
  type: Directive,
573
509
  args: [{
574
- standalone: true,
575
510
  selector: '[tuiHintDescribe]',
576
511
  providers: [tuiAsDriver(TuiHintDescribe)],
577
512
  }]
578
- }], ctorParameters: () => [], propDecorators: { tuiHintDescribe: [{
579
- type: Input
580
- }], element: [] } });
513
+ }], ctorParameters: () => [] });
581
514
 
582
515
  class TuiHintHost extends TuiRectAccessor {
583
516
  constructor() {
584
517
  super(...arguments);
518
+ this.tuiHintHost = input();
585
519
  this.type = 'hint';
586
520
  }
587
521
  getClientRect() {
588
- return this.tuiHintHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
522
+ return this.tuiHintHost()?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
589
523
  }
590
524
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
591
- 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 }); }
525
+ 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 }); }
592
526
  }
593
527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, decorators: [{
594
528
  type: Directive,
595
529
  args: [{
596
- standalone: true,
597
530
  selector: '[tuiHint][tuiHintHost]',
598
531
  providers: [tuiAsRectAccessor(TuiHintHost)],
599
532
  }]
600
- }], propDecorators: { tuiHintHost: [{
601
- type: Input
602
- }] } });
533
+ }] });
603
534
 
604
535
  class TuiHintManual extends TuiDriver {
605
536
  constructor() {
606
537
  super((subscriber) => this.stream$.subscribe(subscriber));
607
538
  this.hover = inject(TuiHintHover);
608
539
  this.stream$ = new BehaviorSubject(false);
609
- this.tuiHintManual = false;
540
+ this.visible = input(false, { alias: 'tuiHintManual' });
610
541
  this.type = 'hint';
611
542
  this.hover.enabled = false;
612
543
  }
613
544
  ngOnChanges() {
614
- this.stream$.next(!!this.tuiHintManual);
615
- this.hover.enabled = this.tuiHintManual === null;
545
+ this.stream$.next(!!this.visible());
546
+ this.hover.enabled = this.visible() === null;
616
547
  }
617
548
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
618
- 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 }); }
549
+ 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 }); }
619
550
  }
620
551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, decorators: [{
621
552
  type: Directive,
622
553
  args: [{
623
- standalone: true,
624
554
  selector: '[tuiHint][tuiHintManual]',
625
555
  providers: [tuiAsDriver(TuiHintManual)],
626
556
  }]
627
- }], ctorParameters: () => [], propDecorators: { tuiHintManual: [{
628
- type: Input
629
- }] } });
557
+ }], ctorParameters: () => [] });
630
558
 
631
559
  class TuiHintOverflow {
632
560
  constructor() {
633
561
  this.hint = inject(TuiHintDirective);
634
- this.tuiHintOverflow = '';
562
+ this.content = input('', { alias: 'tuiHintOverflow' });
635
563
  }
636
564
  onMouseEnter({ scrollWidth, clientWidth, textContent }) {
637
- this.hint.tuiHint =
638
- scrollWidth > clientWidth && this.tuiHintOverflow !== null
639
- ? this.tuiHintOverflow || textContent
640
- : '';
565
+ tuiSetSignal(this.hint.content, scrollWidth > clientWidth && this.content() !== null
566
+ ? this.content() || textContent
567
+ : '');
641
568
  }
642
569
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
643
- 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 }); }
570
+ 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 }); }
644
571
  }
645
572
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, decorators: [{
646
573
  type: Directive,
647
574
  args: [{
648
- standalone: true,
649
575
  selector: '[tuiHintOverflow]',
650
576
  hostDirectives: [
651
577
  {
@@ -657,9 +583,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
657
583
  '(mouseenter)': 'onMouseEnter($event.currentTarget)',
658
584
  },
659
585
  }]
660
- }], propDecorators: { tuiHintOverflow: [{
661
- type: Input
662
- }] } });
586
+ }] });
663
587
 
664
588
  const TuiHint = [
665
589
  TuiHintComponent,
@@ -676,34 +600,9 @@ const TuiHint = [
676
600
  TuiHintPointer,
677
601
  ];
678
602
 
679
- class TuiHints {
680
- constructor() {
681
- this.hints$ = inject(TuiHintService);
682
- this.destroyRef = inject(DestroyRef);
683
- this.cdr = inject(ChangeDetectorRef);
684
- this.hints = [];
685
- }
686
- ngOnInit() {
687
- // Due to this view being parallel to app content, `markForCheck` from `async` pipe
688
- // can happen after view was checked, so calling `detectChanges` instead
689
- this.hints$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hints) => {
690
- this.hints = hints;
691
- this.cdr.detectChanges();
692
- });
693
- }
694
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHints, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
695
- 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 }); }
696
- }
697
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHints, decorators: [{
698
- type: Component,
699
- args: [{ selector: 'tui-hints', imports: [PolymorpheusOutlet, TuiActiveZone, TuiAnimatedParent], changeDetection: ChangeDetectionStrategy.Default, host: {
700
- 'aria-live': 'polite',
701
- }, 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"] }]
702
- }] });
703
-
704
603
  /**
705
604
  * Generated bundle index. Do not edit.
706
605
  */
707
606
 
708
- export { TUI_HINT_COMPONENT, TUI_HINT_DEFAULT_OPTIONS, TUI_HINT_DIRECTIONS, TUI_HINT_OPTIONS, TUI_HINT_PROVIDERS, TuiHint, TuiHintBaseComponent, TuiHintComponent, TuiHintDescribe, TuiHintDirective, TuiHintDriver, TuiHintHost, TuiHintHover, TuiHintManual, TuiHintOptionsDirective, TuiHintOverflow, TuiHintPointer, TuiHintPosition, TuiHintService, TuiHintUnstyled, TuiHintUnstyledComponent, TuiHints, tuiHintOptionsProvider };
607
+ 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 };
709
608
  //# sourceMappingURL=taiga-ui-core-directives-hint.mjs.map