@taiga-ui/core 4.52.0-canary.24b31eb → 4.52.0-canary.2d877cf

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