@taiga-ui/core 4.52.0-canary.6c67ccf → 4.52.0-canary.811ffeb

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 +10 -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-icon.d.ts +3 -3
  49. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  50. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -14
  51. package/components/textfield/textfield.component.d.ts +20 -33
  52. package/components/textfield/textfield.d.ts +2 -3
  53. package/components/textfield/textfield.directive.d.ts +13 -20
  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 +2 -2
  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 -20
  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 +45 -78
  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 +109 -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 +107 -64
  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 +36 -45
  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 +169 -384
  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 +27 -64
  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 +118 -218
  136. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  137. package/fesm2022/taiga-ui-core-directives-icons.mjs +30 -40
  138. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +3 -6
  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 +27 -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 +23 -24
  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,31 @@
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 { 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';
25
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
20
26
  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';
27
+ import { tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
28
+ import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
23
29
 
24
30
  /**
25
31
  * A component to display a hint
@@ -28,31 +34,6 @@ const TUI_HINT_COMPONENT = new InjectionToken(ngDevMode ? 'TUI_HINT_COMPONENT' :
28
34
  factory: () => TuiHintComponent,
29
35
  });
30
36
 
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
37
  class TuiHintDriver extends TuiDriverDirective {
57
38
  constructor() {
58
39
  super(...arguments);
@@ -62,10 +43,7 @@ class TuiHintDriver extends TuiDriverDirective {
62
43
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDriver, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
63
44
  }
64
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDriver, decorators: [{
65
- type: Directive,
66
- args: [{
67
- standalone: true,
68
- }]
46
+ type: Directive
69
47
  }] });
70
48
 
71
49
  const TUI_HINT_DIRECTIONS = [
@@ -127,7 +105,6 @@ class TuiHintOptionsDirective {
127
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOptionsDirective, decorators: [{
128
106
  type: Directive,
129
107
  args: [{
130
- standalone: true,
131
108
  selector: '[tuiHintContent]',
132
109
  providers: [tuiProvide(TUI_HINT_OPTIONS, TuiHintOptionsDirective)],
133
110
  }]
@@ -157,11 +134,11 @@ class TuiHintHover extends TuiDriver {
157
134
  this.options = inject(TUI_HINT_OPTIONS);
158
135
  this.visible = false;
159
136
  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 &&
137
+ this.stream$ = merge(this.toggle$.pipe(switchMap((show) => this.isMobile
138
+ ? of(show)
139
+ : of(show).pipe(delay(show ? 0 : this.hideDelay()))), takeUntil(this.hovered$), repeat()), this.hovered$.pipe(switchMap((show) => this.isMobile
140
+ ? of(show)
141
+ : of(show).pipe(delay(show ? this.showDelay() : this.hideDelay()))), takeUntil(this.toggle$), repeat())).pipe(filter(() => this.enabled), map((value) => value &&
165
142
  (this.el.hasAttribute('tuiHintPointer') || !tuiIsObscured(this.el))), tap((visible) => {
166
143
  this.visible = visible;
167
144
  }));
@@ -169,8 +146,12 @@ class TuiHintHover extends TuiDriver {
169
146
  optional: true,
170
147
  skipSelf: true,
171
148
  });
172
- this.tuiHintShowDelay = this.options.showDelay;
173
- this.tuiHintHideDelay = this.options.hideDelay;
149
+ this.showDelay = input(this.options.showDelay, {
150
+ alias: 'tuiHintShowDelay',
151
+ });
152
+ this.hideDelay = input(this.options.hideDelay, {
153
+ alias: 'tuiHintHideDelay',
154
+ });
174
155
  this.type = 'hint';
175
156
  this.enabled = true;
176
157
  }
@@ -182,20 +163,15 @@ class TuiHintHover extends TuiDriver {
182
163
  this.toggle$.next(false);
183
164
  }
184
165
  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 }); }
166
+ 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
167
  }
187
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, decorators: [{
188
169
  type: Directive,
189
170
  args: [{
190
- standalone: true,
191
171
  providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],
192
172
  exportAs: 'tuiHintHover',
193
173
  }]
194
- }], ctorParameters: () => [], propDecorators: { tuiHintShowDelay: [{
195
- type: Input
196
- }], tuiHintHideDelay: [{
197
- type: Input
198
- }] } });
174
+ }], ctorParameters: () => [] });
199
175
 
200
176
  const GAP$1 = 8;
201
177
  const ARROW_OFFSET = 24;
@@ -207,19 +183,24 @@ class TuiHintPosition extends TuiPositionAccessor {
207
183
  this.el = tuiInjectElement();
208
184
  this.offset = inject(TUI_IS_MOBILE) ? 16 : 8;
209
185
  this.viewport = inject(TUI_VIEWPORT);
210
- this.accessor = tuiFallbackAccessor('hint')(inject(TuiRectAccessor), inject(TuiHintDirective));
186
+ this.accessor = tuiFallbackAccessor('hint')(inject(TuiRectAccessor, { optional: true }), { getClientRect: () => this.el.getBoundingClientRect() });
211
187
  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();
188
+ this.direction = input(inject(TUI_HINT_OPTIONS).direction, {
189
+ alias: 'tuiHintDirection',
190
+ });
191
+ this.directionChange = output({
192
+ alias: 'tuiHintDirectionChange',
193
+ });
214
194
  this.type = 'hint';
215
195
  }
216
196
  emitDirection(direction) {
217
197
  this.directionChange.emit(direction);
218
198
  }
219
199
  getPosition(rect, el) {
200
+ const direction = this.direction();
220
201
  const width = el?.clientWidth ?? rect.width;
221
202
  const height = el?.clientHeight ?? rect.height;
222
- const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;
203
+ const hostRect = this.accessor.getClientRect();
223
204
  const leftCenter = hostRect.left + hostRect.width / 2;
224
205
  const topCenter = hostRect.top + hostRect.height / 2;
225
206
  const rtl = this.el.matches('[dir="rtl"] :scope');
@@ -247,14 +228,14 @@ class TuiHintPosition extends TuiPositionAccessor {
247
228
  this.points.right[LEFT] = this.points['right-top'][LEFT];
248
229
  this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];
249
230
  this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];
250
- const array = Array.isArray(this.direction) ? this.direction : [this.direction];
231
+ const array = Array.isArray(direction) ? direction : [direction];
251
232
  const priority = array.map((direction) => adjust(direction, rtl));
252
- const direction = priority
233
+ const updated = priority
253
234
  .concat(TUI_HINT_DIRECTIONS)
254
235
  .find((dir) => this.checkPosition(this.points[dir], width, height)) ||
255
236
  this.fallback;
256
- this.emitDirection(adjust(direction, rtl));
257
- return this.points[direction];
237
+ this.emitDirection(adjust(updated, rtl));
238
+ return this.points[updated];
258
239
  }
259
240
  get fallback() {
260
241
  return this.points.top[TOP] >
@@ -270,23 +251,14 @@ class TuiHintPosition extends TuiPositionAccessor {
270
251
  left + width < viewport.right - GAP$1);
271
252
  }
272
253
  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 }); }
254
+ 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
255
  }
275
256
  __decorate([
276
257
  tuiPure
277
258
  ], TuiHintPosition.prototype, "emitDirection", null);
278
259
  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: [] } });
260
+ type: Directive
261
+ }], propDecorators: { emitDirection: [] } });
290
262
  function adjust(direction, rtl) {
291
263
  if (rtl && direction.includes('left')) {
292
264
  return direction.replace('left', 'right');
@@ -299,18 +271,19 @@ function adjust(direction, rtl) {
299
271
 
300
272
  class TuiHintDirective {
301
273
  constructor() {
302
- this.service = inject(TuiHintService);
303
- this.appearance = inject(TUI_HINT_OPTIONS).appearance;
304
- this.visible = new EventEmitter();
305
- this.content = signal(null);
274
+ this.service = inject(TuiPopupService);
275
+ this.content = input(null, { alias: 'tuiHint' });
276
+ this.context = input(undefined, { alias: 'tuiHintContext' });
277
+ this.appearance = input(inject(TUI_HINT_OPTIONS).appearance, {
278
+ alias: 'tuiHintAppearance',
279
+ });
280
+ this.visible = output({ alias: 'tuiHintVisible' });
306
281
  this.component = inject((PolymorpheusComponent));
307
282
  this.el = tuiInjectElement();
308
- this.activeZone = inject(TuiActiveZone, { optional: true });
309
283
  this.type = 'hint';
310
284
  }
311
- set tuiHint(content) {
312
- this.content.set(content);
313
- if (!content) {
285
+ ngOnChanges() {
286
+ if (!this.content()) {
314
287
  this.toggle(false);
315
288
  }
316
289
  }
@@ -321,32 +294,31 @@ class TuiHintDirective {
321
294
  return this.el.getBoundingClientRect();
322
295
  }
323
296
  toggle(show) {
324
- if (show && this.content()) {
325
- this.service.add(this);
297
+ if (show && this.content() && !this.ref) {
298
+ this.ref = this.service.add(this.component);
299
+ this.visible.emit(true);
326
300
  }
327
- else {
328
- this.service.remove(this);
301
+ else if (this.ref) {
302
+ this.ref.destroy();
303
+ this.ref = undefined;
304
+ this.visible.emit(false);
329
305
  }
330
- this.visible.emit(show);
331
306
  }
332
307
  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),
308
+ 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
309
  tuiAsVehicle(TuiHintDirective),
336
310
  {
337
311
  provide: PolymorpheusComponent,
338
312
  deps: [TUI_HINT_COMPONENT, INJECTOR],
339
313
  useClass: PolymorpheusComponent,
340
314
  },
341
- ], 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 }); }
342
316
  }
343
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, decorators: [{
344
318
  type: Directive,
345
319
  args: [{
346
- standalone: true,
347
320
  selector: '[tuiHint]:not(ng-container):not(ng-template)',
348
321
  providers: [
349
- tuiAsRectAccessor(TuiHintDirective),
350
322
  tuiAsVehicle(TuiHintDirective),
351
323
  {
352
324
  provide: PolymorpheusComponent,
@@ -367,18 +339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
367
339
  },
368
340
  ],
369
341
  }]
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
- }] } });
342
+ }] });
382
343
 
383
344
  class TuiHintPointer extends TuiHintHover {
384
345
  constructor() {
@@ -397,7 +358,6 @@ class TuiHintPointer extends TuiHintHover {
397
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPointer, decorators: [{
398
359
  type: Directive,
399
360
  args: [{
400
- standalone: true,
401
361
  selector: '[tuiHint][tuiHintPointer]',
402
362
  providers: [tuiAsRectAccessor(TuiHintPointer), tuiAsDriver(TuiHintPointer)],
403
363
  host: {
@@ -408,24 +368,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
408
368
 
409
369
  class TuiHintUnstyledComponent {
410
370
  constructor() {
411
- this.context = injectContext();
371
+ this.hint = inject(TuiHintDirective);
412
372
  }
413
373
  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 }); }
374
+ 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
375
  }
416
376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
417
377
  type: Component,
418
378
  args: [{
419
379
  imports: [PolymorpheusOutlet],
420
- template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
380
+ template: '<ng-container *polymorpheusOutlet="hint.content()" />',
421
381
  changeDetection: ChangeDetectionStrategy.OnPush,
422
382
  }]
423
383
  }] });
424
384
  class TuiHintUnstyled {
425
385
  constructor() {
426
386
  const hint = inject((TuiHintDirective));
427
- hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent);
428
- hint.content.set(inject((TemplateRef)));
387
+ tuiSetSignal(hint.content, inject((TemplateRef)));
388
+ hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent, inject(INJECTOR));
429
389
  }
430
390
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
431
391
  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 +393,6 @@ class TuiHintUnstyled {
433
393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, decorators: [{
434
394
  type: Directive,
435
395
  args: [{
436
- standalone: true,
437
396
  selector: 'ng-template[tuiHint]',
438
397
  }]
439
398
  }], ctorParameters: () => [] });
@@ -442,11 +401,10 @@ const TUI_HINT_PROVIDERS = [
442
401
  TuiPositionService,
443
402
  TuiHoveredService,
444
403
  tuiPositionAccessorFor('hint', TuiHintPosition),
445
- tuiRectAccessorFor('hint', TuiHintDirective),
404
+ tuiRectAccessorFor('hint', forwardRef(() => TuiHintDirective)),
446
405
  ];
447
406
  const GAP = 8;
448
- // TODO(v5): remove base component after angular update
449
- class TuiHintBaseComponent {
407
+ class TuiHintComponent {
450
408
  constructor() {
451
409
  this.el = tuiInjectElement();
452
410
  this.hover = inject(TuiHintHover);
@@ -454,13 +412,15 @@ class TuiHintBaseComponent {
454
412
  this.viewport = inject(TUI_VIEWPORT);
455
413
  this.pointer = inject(TuiHintPointer, { optional: true });
456
414
  this.accessor = inject(TuiRectAccessor);
457
- this.hint = injectContext().$implicit;
415
+ this.hint = inject(TuiHintDirective);
458
416
  this.isMobile = inject(TUI_IS_MOBILE);
459
417
  this.content = this.hint.component.component === TuiHintUnstyledComponent
460
418
  ? signal('')
461
419
  : this.hint.content;
462
- this.appearance = this.hint.appearance ||
463
- this.hint.el.closest('[tuiTheme]')?.getAttribute('tuiTheme');
420
+ this.theme = this.hint.el
421
+ .closest('[tuiTheme]')
422
+ ?.getAttribute('tuiTheme');
423
+ this.appearance = tuiAppearance(this.hint.appearance);
464
424
  inject(TuiPositionService)
465
425
  .pipe(takeWhile(() => this.hint.el.isConnected), map((point) => this.vvs.correct(point)), takeUntilDestroyed())
466
426
  .subscribe({
@@ -498,154 +458,121 @@ class TuiHintBaseComponent {
498
458
  ]);
499
459
  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
460
  }
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: `
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
462
+ 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
463
  <ng-content />
526
464
  <span
527
- *polymorpheusOutlet="content() as text; context: hint.context"
465
+ *polymorpheusOutlet="content() as text; context: hint.context()"
528
466
  [innerHTML]="text"
529
467
  ></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 }); }
468
+ `, 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
469
  }
470
+ __decorate([
471
+ tuiPure
472
+ ], TuiHintComponent.prototype, "apply", null);
532
473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, decorators: [{
533
474
  type: Component,
534
475
  args: [{ selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
535
476
  <ng-content />
536
477
  <span
537
- *polymorpheusOutlet="content() as text; context: hint.context"
478
+ *polymorpheusOutlet="content() as text; context: hint.context()"
538
479
  [innerHTML]="text"
539
480
  ></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
- }] });
481
+ `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone], host: {
482
+ role: 'tooltip',
483
+ '[class._untouchable]': 'pointer',
484
+ '[class._mobile]': 'isMobile',
485
+ '[attr.tuiTheme]': 'theme',
486
+ '(document:click)': 'onClick($event.target)',
487
+ }, 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"] }]
488
+ }], ctorParameters: () => [], propDecorators: { apply: [] } });
542
489
 
543
490
  class TuiHintDescribe extends TuiDriver {
544
491
  constructor() {
545
492
  super((subscriber) => this.stream$.subscribe(subscriber));
546
493
  this.doc = inject(DOCUMENT);
547
494
  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());
495
+ this.element = computed((id = this.id()) => id ? this.doc.querySelector(`#${id}`) || this.el : this.el);
496
+ this.id = input('', { alias: 'tuiHintDescribe' });
553
497
  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;
498
+ this.stream$ = toObservable(this.id).pipe(distinctUntilChanged(), tuiIfMap(() => fromEvent(this.doc, 'keydown', { capture: true }), tuiIsPresent), switchMap(() => this.focused
499
+ ? of(false)
500
+ : 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
501
  }
562
502
  get focused() {
563
- return tuiIsNativeFocused(this.element);
503
+ return tuiIsFocused(this.element());
564
504
  }
565
505
  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 }); }
506
+ 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
507
  }
568
- __decorate([
569
- tuiPure
570
- ], TuiHintDescribe.prototype, "element", null);
571
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, decorators: [{
572
509
  type: Directive,
573
510
  args: [{
574
- standalone: true,
575
511
  selector: '[tuiHintDescribe]',
576
512
  providers: [tuiAsDriver(TuiHintDescribe)],
577
513
  }]
578
- }], ctorParameters: () => [], propDecorators: { tuiHintDescribe: [{
579
- type: Input
580
- }], element: [] } });
514
+ }], ctorParameters: () => [] });
581
515
 
582
516
  class TuiHintHost extends TuiRectAccessor {
583
517
  constructor() {
584
518
  super(...arguments);
519
+ this.tuiHintHost = input();
585
520
  this.type = 'hint';
586
521
  }
587
522
  getClientRect() {
588
- return this.tuiHintHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
523
+ return this.tuiHintHost()?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
589
524
  }
590
525
  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 }); }
526
+ 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
527
  }
593
528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, decorators: [{
594
529
  type: Directive,
595
530
  args: [{
596
- standalone: true,
597
531
  selector: '[tuiHint][tuiHintHost]',
598
532
  providers: [tuiAsRectAccessor(TuiHintHost)],
599
533
  }]
600
- }], propDecorators: { tuiHintHost: [{
601
- type: Input
602
- }] } });
534
+ }] });
603
535
 
604
536
  class TuiHintManual extends TuiDriver {
605
537
  constructor() {
606
538
  super((subscriber) => this.stream$.subscribe(subscriber));
607
539
  this.hover = inject(TuiHintHover);
608
540
  this.stream$ = new BehaviorSubject(false);
609
- this.tuiHintManual = false;
541
+ this.visible = input(false, { alias: 'tuiHintManual' });
610
542
  this.type = 'hint';
611
543
  this.hover.enabled = false;
612
544
  }
613
545
  ngOnChanges() {
614
- this.stream$.next(!!this.tuiHintManual);
615
- this.hover.enabled = this.tuiHintManual === null;
546
+ this.stream$.next(!!this.visible());
547
+ this.hover.enabled = this.visible() === null;
616
548
  }
617
549
  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 }); }
550
+ 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
551
  }
620
552
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, decorators: [{
621
553
  type: Directive,
622
554
  args: [{
623
- standalone: true,
624
555
  selector: '[tuiHint][tuiHintManual]',
625
556
  providers: [tuiAsDriver(TuiHintManual)],
626
557
  }]
627
- }], ctorParameters: () => [], propDecorators: { tuiHintManual: [{
628
- type: Input
629
- }] } });
558
+ }], ctorParameters: () => [] });
630
559
 
631
560
  class TuiHintOverflow {
632
561
  constructor() {
633
562
  this.hint = inject(TuiHintDirective);
634
- this.tuiHintOverflow = '';
563
+ this.content = input('', { alias: 'tuiHintOverflow' });
635
564
  }
636
565
  onMouseEnter({ scrollWidth, clientWidth, textContent }) {
637
- this.hint.tuiHint =
638
- scrollWidth > clientWidth && this.tuiHintOverflow !== null
639
- ? this.tuiHintOverflow || textContent
640
- : '';
566
+ tuiSetSignal(this.hint.content, scrollWidth > clientWidth && this.content() !== null
567
+ ? this.content() || textContent
568
+ : '');
641
569
  }
642
570
  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 }); }
571
+ 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
572
  }
645
573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, decorators: [{
646
574
  type: Directive,
647
575
  args: [{
648
- standalone: true,
649
576
  selector: '[tuiHintOverflow]',
650
577
  hostDirectives: [
651
578
  {
@@ -657,9 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
657
584
  '(mouseenter)': 'onMouseEnter($event.currentTarget)',
658
585
  },
659
586
  }]
660
- }], propDecorators: { tuiHintOverflow: [{
661
- type: Input
662
- }] } });
587
+ }] });
663
588
 
664
589
  const TuiHint = [
665
590
  TuiHintComponent,
@@ -676,34 +601,9 @@ const TuiHint = [
676
601
  TuiHintPointer,
677
602
  ];
678
603
 
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
604
  /**
705
605
  * Generated bundle index. Do not edit.
706
606
  */
707
607
 
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 };
608
+ 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
609
  //# sourceMappingURL=taiga-ui-core-directives-hint.mjs.map