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

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 (166) hide show
  1. package/classes/accessors.d.ts +1 -1
  2. package/components/alert/alert.component.d.ts +5 -6
  3. package/components/alert/alert.directive.d.ts +4 -3
  4. package/components/alert/alert.interfaces.d.ts +6 -6
  5. package/components/alert/alert.service.d.ts +6 -2
  6. package/components/alert/alert.tokens.d.ts +1 -7
  7. package/components/alert/index.d.ts +0 -1
  8. package/components/data-list/data-list.component.d.ts +1 -1
  9. package/components/dialog/dialog.component.d.ts +3 -4
  10. package/components/dialog/dialog.directive.d.ts +4 -3
  11. package/components/dialog/dialog.options.d.ts +2 -3
  12. package/components/dialog/dialog.providers.d.ts +1 -2
  13. package/components/dialog/dialog.service.d.ts +5 -2
  14. package/components/dialog/index.d.ts +0 -1
  15. package/components/error/error.component.d.ts +1 -1
  16. package/components/index.d.ts +1 -1
  17. package/components/link/link.directive.d.ts +2 -2
  18. package/components/loader/loader.component.d.ts +7 -7
  19. package/components/modal/index.d.ts +2 -0
  20. package/components/modal/modal.component.d.ts +17 -0
  21. package/components/modal/modal.service.d.ts +13 -0
  22. package/components/notification/notification.directive.d.ts +6 -11
  23. package/components/root/root.component.d.ts +1 -1
  24. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  25. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  26. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  27. package/components/spin-button/spin-button.component.d.ts +8 -9
  28. package/components/textfield/index.d.ts +1 -3
  29. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +5 -6
  30. package/components/textfield/textfield.component.d.ts +5 -7
  31. package/components/textfield/textfield.d.ts +2 -3
  32. package/components/textfield/textfield.directive.d.ts +10 -13
  33. package/components/textfield/textfield.options.d.ts +8 -11
  34. package/directives/appearance/appearance.directive.d.ts +1 -1
  35. package/directives/appearance/appearance.options.d.ts +1 -1
  36. package/directives/date-format/date-format.directive.d.ts +3 -7
  37. package/directives/dropdown/dropdown-content.directive.d.ts +9 -0
  38. package/directives/dropdown/dropdown-position.directive.d.ts +1 -1
  39. package/directives/dropdown/dropdown.d.ts +2 -2
  40. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  41. package/directives/dropdown/index.d.ts +1 -3
  42. package/directives/hint/hint-describe.directive.d.ts +4 -6
  43. package/directives/hint/hint-host.directive.d.ts +2 -2
  44. package/directives/hint/hint-hover.directive.d.ts +3 -4
  45. package/directives/hint/hint-manual.directive.d.ts +2 -2
  46. package/directives/hint/hint-options.directive.d.ts +1 -1
  47. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  48. package/directives/hint/hint-position.directive.d.ts +4 -5
  49. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  50. package/directives/hint/hint.component.d.ts +7 -6
  51. package/directives/hint/hint.directive.d.ts +9 -11
  52. package/directives/hint/index.d.ts +0 -2
  53. package/directives/index.d.ts +1 -0
  54. package/directives/notification/index.d.ts +2 -0
  55. package/directives/notification/notification.directive.d.ts +11 -0
  56. package/directives/notification/notification.service.d.ts +12 -0
  57. package/directives/number-format/number-format.directive.d.ts +3 -7
  58. package/directives/popup/popup.directive.d.ts +6 -5
  59. package/directives/popup/popup.service.d.ts +1 -1
  60. package/directives/popup/popups.component.d.ts +2 -2
  61. package/fesm2022/taiga-ui-core-classes.mjs +1 -1
  62. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-alert.mjs +57 -96
  64. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-calendar.mjs +7 -8
  67. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-data-list.mjs +4 -11
  70. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-dialog.mjs +34 -91
  72. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components-error.mjs +2 -2
  74. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
  77. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-components-link.mjs +7 -9
  80. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-components-loader.mjs +12 -25
  82. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  84. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  85. package/fesm2022/taiga-ui-core-components-notification.mjs +12 -28
  86. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-components-root.mjs +3 -14
  88. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +35 -43
  90. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  92. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-components-textfield.mjs +127 -271
  94. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-components.mjs +1 -1
  96. package/fesm2022/taiga-ui-core-directives-appearance.mjs +0 -1
  97. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  99. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +44 -104
  101. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-directives-hint.mjs +98 -189
  104. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-directives-icons.mjs +0 -1
  106. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +2 -5
  108. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-core-directives-notification.mjs +73 -0
  110. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +1 -0
  111. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  112. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-core-directives-popup.mjs +13 -20
  114. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-directives.mjs +1 -0
  117. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -1
  119. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
  121. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
  123. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
  125. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -12
  127. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
  129. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-core-pipes-month.mjs +2 -2
  131. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
  133. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  134. package/fesm2022/taiga-ui-core-tokens.mjs +19 -9
  135. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  136. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -0
  137. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  138. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +1 -1
  139. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  140. package/package.json +13 -6
  141. package/pipes/format-number/format-number.pipe.d.ts +5 -3
  142. package/styles/components/link.less +1 -0
  143. package/styles/mixins/appearance.less +1 -1
  144. package/styles/mixins/mixins.less +0 -5
  145. package/styles/mixins/mixins.scss +0 -5
  146. package/styles/mixins/slider.less +24 -14
  147. package/styles/theme/variables.less +2 -4
  148. package/tokens/date-format.d.ts +2 -3
  149. package/tokens/i18n.d.ts +7 -7
  150. package/tokens/number-format.d.ts +2 -3
  151. package/types/index.d.ts +0 -1
  152. package/components/alert/alerts.component.d.ts +0 -12
  153. package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
  154. package/components/dialog/dialogs.component.d.ts +0 -8
  155. package/components/header/header.directive.d.ts +0 -17
  156. package/components/header/index.d.ts +0 -1
  157. package/components/textfield/select.directive.d.ts +0 -19
  158. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  159. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  160. package/directives/dropdown/dropdown.service.d.ts +0 -6
  161. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  162. package/directives/hint/hint.service.d.ts +0 -13
  163. package/directives/hint/hints.component.d.ts +0 -12
  164. package/fesm2022/taiga-ui-core-components-header.mjs +0 -42
  165. package/fesm2022/taiga-ui-core-components-header.mjs.map +0 -1
  166. package/types/portal-item.d.ts +0 -9
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject, Input, EventEmitter, Output, ChangeDetectorRef, INJECTOR, signal, TemplateRef, computed, ChangeDetectionStrategy, Component, ElementRef, ContentChild, ViewContainerRef } from '@angular/core';
2
+ import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject, Input, EventEmitter, Output, ChangeDetectorRef, INJECTOR, signal, TemplateRef, computed, forwardRef, ChangeDetectionStrategy, Component, PLATFORM_ID, ElementRef, ContentChild, ViewContainerRef } from '@angular/core';
3
3
  import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { EMPTY_CLIENT_RECT, TUI_TRUE_HANDLER, CHAR_ZERO_WIDTH_SPACE, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
5
5
  import * as i1 from '@taiga-ui/cdk/directives/active-zone';
@@ -8,8 +8,8 @@ import * as i2 from '@taiga-ui/cdk/directives/animated';
8
8
  import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
9
9
  import { tuiInjectElement, tuiGetActualTarget, tuiPointToClientRect, tuiIsElement, tuiIsHTMLElement, tuiIsElementEditable, tuiIsTextNode, tuiIsTextfield } from '@taiga-ui/cdk/utils/dom';
10
10
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
11
- import { tuiProvide, tuiPure, tuiPx, tuiProvideOptions, tuiIsString, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
12
- import { TuiDriverDirective, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsRectAccessor, tuiAsVehicle, tuiPositionAccessorFor, tuiRectAccessorFor, tuiAsDriver, TuiDriver, tuiAsPositionAccessor } from '@taiga-ui/core/classes';
11
+ import { tuiProvide, tuiPure, tuiPx, tuiProvideOptions, tuiSetSignal, tuiIsString, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
12
+ import { TuiDriverDirective, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsVehicle, tuiPositionAccessorFor, tuiRectAccessorFor, tuiAsDriver, tuiAsRectAccessor, TuiDriver, tuiAsPositionAccessor } from '@taiga-ui/core/classes';
13
13
  import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
14
14
  import { TuiVisualViewportService, TuiPositionService } from '@taiga-ui/core/services';
15
15
  import { TUI_VIEWPORT, TUI_DARK_MODE, TUI_SELECTION_STREAM } from '@taiga-ui/core/tokens';
@@ -17,10 +17,10 @@ import { PolymorpheusComponent, PolymorpheusTemplate, PolymorpheusOutlet } from
17
17
  import { BehaviorSubject, Subject, throttleTime, takeWhile, map, merge, filter, fromEvent, switchMap, delay, startWith, takeUntil, distinctUntilChanged, of, tap, share, combineLatest } from 'rxjs';
18
18
  import { coerceArray } from '@angular/cdk/coercion';
19
19
  import { tuiZonefreeScheduler, tuiTypedFromEvent, tuiZonefree, tuiIfMap, tuiCloseWatcher, tuiZonefull, tuiWatch, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
20
+ import { TuiPopupService } from '@taiga-ui/core/directives/popup';
20
21
  import { tuiOverrideOptions, tuiCheckFixedPosition, tuiGetWordRange } from '@taiga-ui/core/utils';
21
- import { TuiPortalService, TuiPortals, tuiAsPortal } from '@taiga-ui/cdk/classes';
22
22
  import { __decorate } from 'tslib';
23
- import { DOCUMENT } from '@angular/common';
23
+ import { isPlatformBrowser, DOCUMENT } from '@angular/common';
24
24
  import { TUI_IS_TOUCH, TUI_RANGE } from '@taiga-ui/cdk/tokens';
25
25
  import { shouldCall } from '@taiga-ui/event-plugins';
26
26
  import * as i1$1 from '@taiga-ui/cdk/directives/obscured';
@@ -48,10 +48,7 @@ class TuiDropdownDriverDirective extends TuiDriverDirective {
48
48
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownDriverDirective, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDriverDirective, decorators: [{
51
- type: Directive,
52
- args: [{
53
- standalone: true,
54
- }]
51
+ type: Directive
55
52
  }] });
56
53
 
57
54
  /**
@@ -62,17 +59,6 @@ const TUI_DROPDOWN_COMPONENT = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_COMP
62
59
  });
63
60
  const TUI_DROPDOWN_CONTEXT = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_CONTEXT' : '');
64
61
 
65
- class TuiDropdownService extends TuiPortalService {
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
67
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownService, providedIn: 'root' }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownService, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root',
73
- }]
74
- }] });
75
-
76
62
  /** Default values for dropdown options */
77
63
  const TUI_DROPDOWN_DEFAULT_OPTIONS = {
78
64
  align: 'left',
@@ -114,7 +100,6 @@ class TuiDropdownOptionsDirective {
114
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOptionsDirective, decorators: [{
115
101
  type: Directive,
116
102
  args: [{
117
- standalone: true,
118
103
  selector: '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',
119
104
  providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],
120
105
  }]
@@ -149,7 +134,9 @@ class TuiDropdownPosition extends TuiPositionAccessor {
149
134
  this.viewport = inject(TUI_VIEWPORT);
150
135
  this.directionChange = new EventEmitter();
151
136
  this.type = 'dropdown';
152
- this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor), inject(TuiDropdownDirective, { optional: true }));
137
+ this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor, { optional: true }), {
138
+ getClientRect: () => this.el.getBoundingClientRect(),
139
+ });
153
140
  }
154
141
  emitDirection(direction) {
155
142
  this.directionChange.emit(direction);
@@ -158,7 +145,7 @@ class TuiDropdownPosition extends TuiPositionAccessor {
158
145
  if (!width && !height) {
159
146
  this.previous = undefined;
160
147
  }
161
- const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;
148
+ const hostRect = this.accessor.getClientRect();
162
149
  const viewportRect = this.viewport.getClientRect();
163
150
  const { minHeight, direction, offset, limitWidth } = this.options;
164
151
  const align = this.getAlign(this.options.align);
@@ -209,10 +196,7 @@ __decorate([
209
196
  tuiPure
210
197
  ], TuiDropdownPosition.prototype, "emitDirection", null);
211
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPosition, decorators: [{
212
- type: Directive,
213
- args: [{
214
- standalone: true,
215
- }]
199
+ type: Directive
216
200
  }], propDecorators: { directionChange: [{
217
201
  type: Output,
218
202
  args: ['tuiDropdownDirectionChange']
@@ -221,7 +205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
221
205
  class TuiDropdownDirective {
222
206
  constructor() {
223
207
  this.refresh$ = new Subject();
224
- this.service = inject(TuiDropdownService);
208
+ this.service = inject(TuiPopupService);
225
209
  this.cdr = inject(ChangeDetectorRef);
226
210
  // TODO: think of a better solution later
227
211
  this.drivers = coerceArray(inject(TuiDropdownDriver, { self: true, optional: true }));
@@ -274,27 +258,20 @@ class TuiDropdownDirective {
274
258
  }
275
259
  else if (!show && ref) {
276
260
  this.ref.set(null);
277
- this.service.remove(ref);
261
+ ref.destroy();
278
262
  }
279
263
  this.drivers.forEach((driver) => driver?.next(show));
280
264
  // TODO: Remove in v5, only needed in Angular 16
281
265
  this.cdr.markForCheck();
282
266
  }
283
267
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
284
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownDirective, isStandalone: true, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: { tuiDropdown: "tuiDropdown" }, host: { properties: { "class.tui-dropdown-open": "ref()" } }, providers: [
285
- tuiAsRectAccessor(TuiDropdownDirective),
286
- tuiAsVehicle(TuiDropdownDirective),
287
- ], exportAs: ["tuiDropdown"], hostDirectives: [{ directive: TuiDropdownDriverDirective }, { directive: TuiDropdownPosition, outputs: ["tuiDropdownDirectionChange", "tuiDropdownDirectionChange"] }], ngImport: i0 }); }
268
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownDirective, isStandalone: true, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: { tuiDropdown: "tuiDropdown" }, host: { properties: { "class.tui-dropdown-open": "ref()" } }, providers: [tuiAsVehicle(TuiDropdownDirective)], exportAs: ["tuiDropdown"], hostDirectives: [{ directive: TuiDropdownDriverDirective }, { directive: TuiDropdownPosition, outputs: ["tuiDropdownDirectionChange", "tuiDropdownDirectionChange"] }], ngImport: i0 }); }
288
269
  }
289
270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDirective, decorators: [{
290
271
  type: Directive,
291
272
  args: [{
292
- standalone: true,
293
273
  selector: '[tuiDropdown]:not(ng-container):not(ng-template)',
294
- providers: [
295
- tuiAsRectAccessor(TuiDropdownDirective),
296
- tuiAsVehicle(TuiDropdownDirective),
297
- ],
274
+ providers: [tuiAsVehicle(TuiDropdownDirective)],
298
275
  exportAs: 'tuiDropdown',
299
276
  hostDirectives: [
300
277
  TuiDropdownDriverDirective,
@@ -366,7 +343,7 @@ class TuiDropdownComponent {
366
343
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownComponent, isStandalone: true, selector: "tui-dropdown", host: { properties: { "attr.data-appearance": "options.appearance", "attr.tuiTheme": "theme()" } }, providers: [
367
344
  TuiPositionService,
368
345
  tuiPositionAccessorFor('dropdown', TuiDropdownPosition),
369
- tuiRectAccessorFor('dropdown', TuiDropdownDirective),
346
+ tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
370
347
  ], hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiAnimated }], ngImport: i0, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive._content() as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n", styles: [":host{position:absolute;display:flex;box-shadow:var(--tui-shadow-medium);color:var(--tui-text-primary);background:var(--tui-background-elevation-3);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-border-normal);box-sizing:border-box;isolation:isolate;pointer-events:auto;--tui-from: translateY(-1rem)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:not([style*=top]){visibility:hidden}.t-scroll{flex-grow:1;max-inline-size:100%;inline-size:max-content;overscroll-behavior:none}.t-primitive{padding:1rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
371
348
  }
372
349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownComponent, decorators: [{
@@ -374,13 +351,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
374
351
  args: [{ selector: 'tui-dropdown', imports: [PolymorpheusOutlet, TuiScrollbar], changeDetection: ChangeDetectionStrategy.Default, providers: [
375
352
  TuiPositionService,
376
353
  tuiPositionAccessorFor('dropdown', TuiDropdownPosition),
377
- tuiRectAccessorFor('dropdown', TuiDropdownDirective),
354
+ tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
378
355
  ], hostDirectives: [TuiActiveZone, TuiAnimated], host: {
379
356
  '[attr.data-appearance]': 'options.appearance',
380
357
  '[attr.tuiTheme]': 'theme()',
381
358
  }, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive._content() as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n", styles: [":host{position:absolute;display:flex;box-shadow:var(--tui-shadow-medium);color:var(--tui-text-primary);background:var(--tui-background-elevation-3);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-border-normal);box-sizing:border-box;isolation:isolate;pointer-events:auto;--tui-from: translateY(-1rem)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:not([style*=top]){visibility:hidden}.t-scroll{flex-grow:1;max-inline-size:100%;inline-size:max-content;overscroll-behavior:none}.t-primitive{padding:1rem}\n"] }]
382
359
  }] });
383
360
 
361
+ class TuiDropdownContent {
362
+ constructor() {
363
+ this.directive = inject(TuiDropdownDirective);
364
+ this.directive.tuiDropdown = inject(TemplateRef);
365
+ if (isPlatformBrowser(inject(PLATFORM_ID)) &&
366
+ this.directive.el.matches(':focus-within')) {
367
+ this.directive.toggle(true);
368
+ }
369
+ }
370
+ ngOnDestroy() {
371
+ this.directive.tuiDropdown = null;
372
+ }
373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
374
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownContent, isStandalone: true, selector: "ng-template[tuiDropdown]", ngImport: i0 }); }
375
+ }
376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContent, decorators: [{
377
+ type: Directive,
378
+ args: [{
379
+ selector: 'ng-template[tuiDropdown]',
380
+ }]
381
+ }], ctorParameters: () => [] });
382
+
384
383
  function activeZoneFilter(event) {
385
384
  return (!event ||
386
385
  (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event))));
@@ -424,7 +423,6 @@ __decorate([
424
423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContext, decorators: [{
425
424
  type: Directive,
426
425
  args: [{
427
- standalone: true,
428
426
  selector: '[tuiDropdownContext]',
429
427
  providers: [
430
428
  TuiActiveZone,
@@ -480,7 +478,7 @@ class TuiDropdownOpen {
480
478
  // TODO: make it private when all legacy controls will be deleted from @taiga-ui/legacy (5.0)
481
479
  this.driver = inject(TuiDropdownDriver);
482
480
  this.sub = this.driver
483
- .pipe(tuiIfMap(() => merge(tuiCloseWatcher(), this.obscured.tuiObscured.pipe(filter(Boolean)), this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)), fromEvent(this.el, 'focusin').pipe(filter((event) => !this.host.contains(tuiGetActualTarget(event)) ||
481
+ .pipe(tuiIfMap(() => merge(tuiCloseWatcher(), this.obscured.tuiObscured$.pipe(filter(Boolean)), this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)), fromEvent(this.el, 'focusin').pipe(filter((event) => !this.host.contains(tuiGetActualTarget(event)) ||
484
482
  !this.directive.ref())))), tuiZonefull(), tuiWatch(), takeUntilDestroyed())
485
483
  .subscribe(() => this.toggle(false));
486
484
  this.sync = this.driver.pipe(takeUntilDestroyed()).subscribe((open) => {
@@ -551,7 +549,7 @@ class TuiDropdownOpen {
551
549
  this.drive();
552
550
  }
553
551
  drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled) {
554
- this.obscured.tuiObscuredEnabled = open;
552
+ tuiSetSignal(this.obscured.tuiObscuredEnabled, open);
555
553
  this.driver.next(open);
556
554
  }
557
555
  focusDropdown(previous) {
@@ -576,7 +574,6 @@ __decorate([
576
574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpen, decorators: [{
577
575
  type: Directive,
578
576
  args: [{
579
- standalone: true,
580
577
  selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
581
578
  providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
582
579
  hostDirectives: [
@@ -647,7 +644,6 @@ class TuiDropdownHover extends TuiDriver {
647
644
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownHover, decorators: [{
648
645
  type: Directive,
649
646
  args: [{
650
- standalone: true,
651
647
  selector: '[tuiDropdownHover]',
652
648
  providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],
653
649
  host: {
@@ -679,7 +675,6 @@ class TuiDropdownManual {
679
675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownManual, decorators: [{
680
676
  type: Directive,
681
677
  args: [{
682
- standalone: true,
683
678
  selector: '[tuiDropdownManual]',
684
679
  providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
685
680
  }]
@@ -707,7 +702,6 @@ class TuiDropdownOpenLegacy {
707
702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpenLegacy, decorators: [{
708
703
  type: Directive,
709
704
  args: [{
710
- standalone: true,
711
705
  selector: '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',
712
706
  }]
713
707
  }], propDecorators: { tuiDropdownOpenChange: [{
@@ -716,36 +710,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
716
710
  type: Input
717
711
  }] } });
718
712
 
719
- /**
720
- * @deprecated use {@link TuiPopup} directive instead
721
- */
722
- class TuiDropdownPortal {
723
- constructor() {
724
- this.template = inject(TemplateRef);
725
- this.service = inject(TuiDropdownService);
726
- }
727
- set tuiDropdown(show) {
728
- this.viewRef?.destroy();
729
- if (show) {
730
- this.viewRef = this.service.addTemplate(this.template);
731
- }
732
- }
733
- ngOnDestroy() {
734
- this.viewRef?.destroy();
735
- }
736
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
737
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownPortal, isStandalone: true, selector: "ng-template[tuiDropdown]", inputs: { tuiDropdown: "tuiDropdown" }, ngImport: i0 }); }
738
- }
739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPortal, decorators: [{
740
- type: Directive,
741
- args: [{
742
- standalone: true,
743
- selector: 'ng-template[tuiDropdown]',
744
- }]
745
- }], propDecorators: { tuiDropdown: [{
746
- type: Input
747
- }] } });
748
-
749
713
  class TuiDropdownPositionSided extends TuiPositionAccessor {
750
714
  constructor() {
751
715
  super(...arguments);
@@ -797,7 +761,6 @@ class TuiDropdownPositionSided extends TuiPositionAccessor {
797
761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPositionSided, decorators: [{
798
762
  type: Directive,
799
763
  args: [{
800
- standalone: true,
801
764
  selector: '[tuiDropdownSided]',
802
765
  providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],
803
766
  }]
@@ -938,7 +901,6 @@ class TuiDropdownSelection extends TuiDriver {
938
901
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownSelection, decorators: [{
939
902
  type: Directive,
940
903
  args: [{
941
- standalone: true,
942
904
  selector: '[tuiDropdownSelection]',
943
905
  providers: [
944
906
  tuiAsDriver(TuiDropdownSelection),
@@ -959,9 +921,9 @@ const TuiDropdown = [
959
921
  TuiDropdownComponent,
960
922
  TuiDropdownOpen,
961
923
  TuiDropdownOpenLegacy,
962
- TuiDropdownPortal,
963
924
  TuiDropdownManual,
964
925
  TuiDropdownHover,
926
+ TuiDropdownContent,
965
927
  TuiDropdownContext,
966
928
  TuiDropdownPosition,
967
929
  TuiDropdownPositionSided,
@@ -993,7 +955,6 @@ class TuiDropdownFixed {
993
955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownFixed, decorators: [{
994
956
  type: Directive,
995
957
  args: [{
996
- standalone: true,
997
958
  providers: [tuiDropdownOptionsProvider({})],
998
959
  }]
999
960
  }], ctorParameters: () => [] });
@@ -1009,29 +970,9 @@ class TuiDropdownAuto {
1009
970
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownAuto, isStandalone: true, ngImport: i0 }); }
1010
971
  }
1011
972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownAuto, decorators: [{
1012
- type: Directive,
1013
- args: [{ standalone: true }]
973
+ type: Directive
1014
974
  }], ctorParameters: () => [] });
1015
975
 
1016
- /**
1017
- * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
1018
- */
1019
- class TuiDropdowns extends TuiPortals {
1020
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdowns, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1021
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdowns, isStandalone: true, selector: "tui-dropdowns", host: { styleAttribute: "position: absolute; width: 100%; top: 0" }, providers: [tuiAsPortal(TuiDropdownService)], usesInheritance: true, ngImport: i0, template: '<ng-container #viewContainer />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1022
- }
1023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdowns, decorators: [{
1024
- type: Component,
1025
- args: [{
1026
- standalone: true,
1027
- selector: 'tui-dropdowns',
1028
- template: '<ng-container #viewContainer />',
1029
- changeDetection: ChangeDetectionStrategy.OnPush,
1030
- providers: [tuiAsPortal(TuiDropdownService)],
1031
- host: { style: 'position: absolute; width: 100%; top: 0' },
1032
- }]
1033
- }] });
1034
-
1035
976
  class TuiWithDropdownOpen {
1036
977
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithDropdownOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1037
978
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiWithDropdownOpen, isStandalone: true, hostDirectives: [{ directive: TuiDropdownOpen, inputs: ["tuiDropdownOpen", "open", "tuiDropdownEnabled", "tuiDropdownEnabled"], outputs: ["tuiDropdownOpenChange", "openChange"] }], ngImport: i0 }); }
@@ -1039,7 +980,6 @@ class TuiWithDropdownOpen {
1039
980
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithDropdownOpen, decorators: [{
1040
981
  type: Directive,
1041
982
  args: [{
1042
- standalone: true,
1043
983
  hostDirectives: [
1044
984
  {
1045
985
  directive: TuiDropdownOpen,
@@ -1054,5 +994,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1054
994
  * Generated bundle index. Do not edit.
1055
995
  */
1056
996
 
1057
- export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownAuto, TuiDropdownComponent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen, TuiDropdownOpenLegacy, TuiDropdownOptionsDirective, TuiDropdownPortal, TuiDropdownPosition, TuiDropdownPositionSided, TuiDropdownSelection, TuiDropdownService, TuiDropdowns, TuiWithDropdownOpen, tuiDropdown, tuiDropdownEnabled, tuiDropdownHoverOptionsProvider, tuiDropdownOpen, tuiDropdownOptionsProvider };
997
+ export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownAuto, TuiDropdownComponent, TuiDropdownContent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen, TuiDropdownOpenLegacy, TuiDropdownOptionsDirective, TuiDropdownPosition, TuiDropdownPositionSided, TuiDropdownSelection, TuiWithDropdownOpen, tuiDropdown, tuiDropdownEnabled, tuiDropdownHoverOptionsProvider, tuiDropdownOpen, tuiDropdownOptionsProvider };
1058
998
  //# sourceMappingURL=taiga-ui-core-directives-dropdown.mjs.map