@taiga-ui/layout 4.52.0-canary.6043e8f → 4.52.0-canary.61fea47

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 (65) hide show
  1. package/README.md +2 -2
  2. package/components/app-bar/app-bar.component.d.ts +2 -2
  3. package/components/app-bar/app-bar.directive.d.ts +2 -2
  4. package/components/block-status/block-status.component.d.ts +3 -3
  5. package/components/block-status/block-status.directive.d.ts +2 -2
  6. package/components/card/collapsed.directive.d.ts +2 -2
  7. package/components/card/large.directive.d.ts +3 -2
  8. package/components/card/medium.directive.d.ts +2 -1
  9. package/components/dynamic-header/dynamic-header-anchor.directive.d.ts +1 -1
  10. package/components/dynamic-header/dynamic-header-container.directive.d.ts +2 -2
  11. package/components/form/form.directive.d.ts +3 -4
  12. package/components/form/form.options.d.ts +1 -1
  13. package/components/header/header.directive.d.ts +7 -8
  14. package/components/index.d.ts +2 -1
  15. package/components/input-search/input-search.component.d.ts +4 -5
  16. package/components/item-group/item-group.directive.d.ts +3 -3
  17. package/components/navigation/aside-group.component.d.ts +7 -8
  18. package/components/navigation/aside-item.directive.d.ts +2 -2
  19. package/components/navigation/aside.component.d.ts +2 -3
  20. package/components/navigation/drawer.component.d.ts +6 -7
  21. package/components/navigation/hint-aside.directive.d.ts +5 -3
  22. package/components/pdf-viewer/index.d.ts +1 -0
  23. package/components/pdf-viewer/pdf-viewer.component.d.ts +13 -0
  24. package/components/search/search-filter.component.d.ts +4 -3
  25. package/components/search/search-filters.component.d.ts +6 -8
  26. package/components/surface/index.d.ts +1 -0
  27. package/components/surface/surface.directive.d.ts +6 -0
  28. package/fesm2022/taiga-ui-layout-components-app-bar.mjs +14 -24
  29. package/fesm2022/taiga-ui-layout-components-app-bar.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-layout-components-block-details.mjs +6 -9
  31. package/fesm2022/taiga-ui-layout-components-block-details.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-layout-components-block-status.mjs +11 -18
  33. package/fesm2022/taiga-ui-layout-components-block-status.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-layout-components-card.mjs +46 -56
  35. package/fesm2022/taiga-ui-layout-components-card.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-layout-components-dynamic-header.mjs +15 -19
  37. package/fesm2022/taiga-ui-layout-components-dynamic-header.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-layout-components-form.mjs +31 -44
  39. package/fesm2022/taiga-ui-layout-components-form.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-layout-components-header.mjs +13 -31
  41. package/fesm2022/taiga-ui-layout-components-header.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-layout-components-input-search.mjs +12 -21
  43. package/fesm2022/taiga-ui-layout-components-input-search.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-layout-components-item-group.mjs +16 -30
  45. package/fesm2022/taiga-ui-layout-components-item-group.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-layout-components-navigation.mjs +70 -85
  47. package/fesm2022/taiga-ui-layout-components-navigation.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-layout-components-pdf-viewer.mjs +48 -0
  49. package/fesm2022/taiga-ui-layout-components-pdf-viewer.mjs.map +1 -0
  50. package/fesm2022/taiga-ui-layout-components-search.mjs +24 -44
  51. package/fesm2022/taiga-ui-layout-components-search.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-layout-components-surface.mjs +33 -0
  53. package/fesm2022/taiga-ui-layout-components-surface.mjs.map +1 -0
  54. package/fesm2022/taiga-ui-layout-components.mjs +2 -1
  55. package/fesm2022/taiga-ui-layout-components.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-layout-tokens.mjs +2 -7
  57. package/fesm2022/taiga-ui-layout-tokens.mjs.map +1 -1
  58. package/package.json +13 -6
  59. package/tokens/common-icons.d.ts +3 -5
  60. package/tokens/i18n.d.ts +1 -1
  61. package/components/cell/cell.directive.d.ts +0 -10
  62. package/components/cell/cell.options.d.ts +0 -6
  63. package/components/cell/index.d.ts +0 -2
  64. package/fesm2022/taiga-ui-layout-components-cell.mjs +0 -61
  65. package/fesm2022/taiga-ui-layout-components-cell.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-components-item-group.mjs","sources":["../../../projects/layout/components/item-group/item-group.directive.ts","../../../projects/layout/components/item-group/taiga-ui-layout-components-item-group.ts"],"sourcesContent":["import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {take, timer} from 'rxjs';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./item-group.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-item-group',\n },\n})\nclass TuiItemGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiItemGroup]',\n host: {\n '(click)': 'onClick($event.target)',\n '[class._horizontal]': 'horizontal',\n },\n})\nexport class TuiItemGroup implements AfterViewInit {\n private readonly el = tuiInjectElement();\n protected readonly nothing = tuiWithStyles(TuiItemGroupStyles);\n\n @Input()\n public horizontal = false;\n\n @Input()\n public autoscroll = false;\n\n public ngAfterViewInit(): void {\n this.el.classList.add('_initialized');\n }\n\n protected onClick(target: HTMLElement): void {\n if (this.autoscroll && this.horizontal) {\n timer(0) // Safari bug\n .pipe(take(1))\n .subscribe(() => {\n target.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYA,MAUM,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,oHARV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,42BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,gBAAgB;AAC1B,qBAAA,EAAA,MAAA,EAAA,CAAA,42BAAA,CAAA,EAAA;;MAYQ,YAAY,CAAA;AARzB,IAAA,WAAA,GAAA;QASqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC;QAGvD,IAAU,CAAA,UAAA,GAAG,KAAK;QAGlB,IAAU,CAAA,UAAA,GAAG,KAAK;AAmB5B;IAjBU,eAAe,GAAA;QAClB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;;AAG/B,IAAA,OAAO,CAAC,MAAmB,EAAA;QACjC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,KAAK,CAAC,CAAC,CAAC;AACH,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACZ,SAAS,CAAC,MAAK;gBACZ,MAAM,CAAC,cAAc,CAAC;AAClB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,MAAM,EAAE,QAAQ;AACnB,iBAAA,CAAC;AACN,aAAC,CAAC;;;+GAxBL,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,wBAAwB;AACnC,wBAAA,qBAAqB,EAAE,YAAY;AACtC,qBAAA;AACJ,iBAAA;8BAMU,UAAU,EAAA,CAAA;sBADhB;gBAIM,UAAU,EAAA,CAAA;sBADhB;;;ACvCL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-layout-components-item-group.mjs","sources":["../../../projects/layout/components/item-group/item-group.directive.ts","../../../projects/layout/components/item-group/taiga-ui-layout-components-item-group.ts"],"sourcesContent":["import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\nconst OPTIONS = {behavior: 'smooth', block: 'nearest', inline: 'center'} as const;\n\n@Component({\n template: '',\n styleUrl: './item-group.styles.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-item-group'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiItemGroup]',\n host: {\n '(click)': 'onClick($event.target)',\n '[class._horizontal]': 'horizontal()',\n },\n})\nexport class TuiItemGroup implements AfterViewInit {\n private readonly el = tuiInjectElement();\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly horizontal = input(false);\n public readonly autoscroll = input(false);\n\n public ngAfterViewInit(): void {\n this.el.classList.add('_initialized');\n }\n\n protected onClick(target: HTMLElement): void {\n if (this.autoscroll() && this.horizontal()) {\n // Safari bug\n setTimeout(() => target.scrollIntoView(OPTIONS));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAWA,MAAM,OAAO,GAAG,EAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAU;AAEjF,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,oHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,42BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,gBAAgB,EAAC,EAAA,MAAA,EAAA,CAAA,42BAAA,CAAA,EAAA;;MAWtB,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;QAQqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AAErB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAElC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AAY5C;IAVU,eAAe,GAAA;QAClB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;;AAG/B,IAAA,OAAO,CAAC,MAAmB,EAAA;QACjC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;;YAExC,UAAU,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;;;+GAf/C,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,wBAAwB;AACnC,wBAAA,qBAAqB,EAAE,cAAc;AACxC,qBAAA;AACJ,iBAAA;;;AC5BD;;AAEG;;;;"}
@@ -1,32 +1,30 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, computed, TemplateRef, Output, ContentChild, ViewChild, Directive } from '@angular/core';
3
- import * as i3$1 from '@taiga-ui/core/components/button';
2
+ import { input, ChangeDetectionStrategy, ViewEncapsulation, Component, viewChild, contentChild, inject, TemplateRef, computed, effect, model, Directive, signal } from '@angular/core';
3
+ import * as i3 from '@taiga-ui/core/components/button';
4
4
  import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
5
5
  import { TuiScrollable, TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
6
- import * as i1 from '@taiga-ui/core/directives/dropdown';
7
- import { tuiDropdownOptionsProvider, TuiDropdownDirective, TuiDropdownHover, TuiDropdownPositionSided, TuiDropdownOpen, TuiDropdownManual, TUI_DROPDOWN_OPTIONS, tuiDropdown, TUI_DROPDOWN_COMPONENT, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
6
+ import * as i1 from '@taiga-ui/core/portals/dropdown';
7
+ import { tuiDropdownOptionsProvider, TuiDropdownDirective, TuiDropdownHover, TuiDropdownPositionSided, TuiDropdownOpen, TuiDropdownManual, TUI_DROPDOWN_OPTIONS, tuiDropdown, TUI_DROPDOWN_COMPONENT, TuiWithDropdownOpen } from '@taiga-ui/core/portals/dropdown';
8
+ import * as i1$1 from '@taiga-ui/core/portals/hint';
9
+ import { tuiHintOptionsProvider, TuiHintDirective } from '@taiga-ui/core/portals/hint';
8
10
  import { TuiFade } from '@taiga-ui/kit/directives/fade';
9
- import { toObservable, toSignal } from '@angular/core/rxjs-interop';
10
- import { tuiDirectiveBinding, tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
11
+ import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
12
+ import { tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
11
13
  import * as i2 from '@taiga-ui/core/components/data-list';
12
14
  import { tuiAsDataListHost, TuiDataList, TuiDataListComponent } from '@taiga-ui/core/components/data-list';
13
- import * as i3 from '@taiga-ui/core/components/expand';
14
15
  import { TuiExpand } from '@taiga-ui/core/components/expand';
15
16
  import { TuiChevron, TUI_CHEVRON } from '@taiga-ui/kit/directives/chevron';
16
17
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
17
- import { skip } from 'rxjs';
18
+ import { toSignal } from '@angular/core/rxjs-interop';
18
19
  import * as i4 from '@angular/router';
19
20
  import { RouterLink, RouterLinkActive } from '@angular/router';
20
- import { TuiIcons } from '@taiga-ui/core/directives/icons';
21
- import { TUI_COMMON_ICONS, TUI_ICON_END, TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
21
+ import { TuiIcons, tuiIconStart } from '@taiga-ui/core/directives/icons';
22
+ import { TUI_COMMON_ICONS, TUI_ICON_END } from '@taiga-ui/core/tokens';
22
23
  import { tuiInjectElement, tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
23
- import * as i1$1 from '@taiga-ui/core/directives/hint';
24
- import { TuiHintDirective, tuiHintOptionsProvider } from '@taiga-ui/core/directives/hint';
25
24
  import * as i1$2 from '@taiga-ui/cdk/directives/active-zone';
26
25
  import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
27
26
  import * as i2$1 from '@taiga-ui/cdk/directives/animated';
28
27
  import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
29
- import { tuiToAnimationOptions } from '@taiga-ui/core/utils/miscellaneous';
30
28
  import { TUI_LAYOUT_ICONS } from '@taiga-ui/layout/tokens';
31
29
  import { tuiTextfieldOptionsProvider } from '@taiga-ui/core/components/textfield';
32
30
  import { tuiAvatarOptionsProvider } from '@taiga-ui/kit/components/avatar';
@@ -38,14 +36,11 @@ import { tuiBreadcrumbsOptionsProvider } from '@taiga-ui/kit/components/breadcru
38
36
 
39
37
  class TuiAsideComponent {
40
38
  constructor() {
41
- // TODO: refactor to signal inputs after Angular update
42
- this.expanded = signal(false);
43
- }
44
- set tuiNavigationAside(expanded) {
45
- this.expanded.set(expanded);
39
+ this.expanded = input(false, { alias: 'tuiNavigationAside' });
46
40
  }
47
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAsideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiAsideComponent, isStandalone: true, selector: "aside[tuiNavigationAside]", inputs: { tuiNavigationAside: "tuiNavigationAside" }, host: { attributes: { "tuiNavigationAside": "", "tuiTheme": "dark" }, properties: { "class._expanded": "expanded()" } }, providers: [
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: TuiAsideComponent, isStandalone: true, selector: "aside[tuiNavigationAside]", inputs: { expanded: { classPropertyName: "expanded", publicName: "tuiNavigationAside", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiNavigationAside": "", "tuiTheme": "dark" }, properties: { "class._expanded": "expanded()" } }, providers: [
43
+ tuiHintOptionsProvider({ appearance: 'floating' }),
49
44
  tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
50
45
  tuiDropdownOptionsProvider({
51
46
  appearance: 'dropdown-navigation',
@@ -81,6 +76,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
81
76
  </tui-scrollbar>
82
77
  <ng-content select="footer" />
83
78
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
79
+ tuiHintOptionsProvider({ appearance: 'floating' }),
84
80
  tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
85
81
  tuiDropdownOptionsProvider({
86
82
  appearance: 'dropdown-navigation',
@@ -92,29 +88,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
92
88
  tuiTheme: 'dark',
93
89
  '[class._expanded]': 'expanded()',
94
90
  }, styles: ["aside[tuiNavigationAside]{transition-property:width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:sticky;top:3rem;left:0;z-index:1;display:flex;inset-inline-start:0;inline-size:3rem;flex-direction:column;padding:.5rem .5rem .25rem;box-sizing:border-box;background:var(--tui-theme-color, #000);color:var(--tui-text-primary)}aside[tuiNavigationAside]:before{content:\"\";position:absolute;top:0;left:100%;z-index:-1;inset-inline-start:100%;block-size:3rem;inline-size:3rem;pointer-events:none;border-top-left-radius:1.25rem;box-shadow:-1.5rem 0 var(--tui-theme-color, #000);transform:scaleX(var(--tui-inline))}aside[tuiNavigationAside]:after{content:\"\";position:fixed;top:inherit;left:0;bottom:-3rem;z-index:-1;inset-inline-start:0;inline-size:3rem;background:inherit}aside[tuiNavigationAside]._expanded{inline-size:14.375rem}aside[tuiNavigationAside]._expanded+main[tuiNavigationMain]{max-inline-size:calc(100% - 14.375rem)}aside[tuiNavigationAside] .t-nav-scrollbar{margin:0 -.25rem}aside[tuiNavigationAside] .t-nav-content{scrollbar-width:none;-ms-overflow-style:none;block-size:100%;padding:0 .25rem;overflow:auto}aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar,aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar-thumb{display:none}aside[tuiNavigationAside] tui-expand [tuiAsideItem]{padding-inline-start:2rem}aside[tuiNavigationAside] hr{background:var(--tui-border-normal);block-size:1px;margin:0 0 .25rem;border:none}aside[tuiNavigationAside] header{padding-block-end:.25rem;box-shadow:inset 0 -1px var(--tui-border-normal);margin-block-end:1rem}aside[tuiNavigationAside] footer{display:flex;flex-direction:column;flex:1}aside[tuiNavigationAside] footer:before{content:\"\";min-block-size:1.75rem;margin:0 -.5rem;flex:1;mask:linear-gradient(transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}aside[tuiNavigationAside]+main[tuiNavigationMain]{max-inline-size:calc(100% - 3rem)}[tuiAsideItem][tuiAsideItem]{inline-size:100%;justify-content:flex-start;gap:.625rem;margin-block-end:.25rem}[tuiAsideItem][tuiAsideItem]:after{border:none!important;margin-inline-start:auto!important;color:var(--tui-text-tertiary)}[tuiAsideItem][tuiAsideItem].tui-dropdown-open,[tuiAsideItem][tuiAsideItem]._active:not(._chevron-rotated),aside[tuiNavigationAside]:not(._expanded) [tuiAsideItem][tuiAsideItem]._active{background:var(--tui-background-neutral-1-hover)}tui-dropdown[data-appearance=dropdown-navigation]{border:none;background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]{justify-content:flex-start;margin:0;padding:0 .5rem}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._active{background:transparent}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link:not(._custom):after{opacity:0}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link._active:after{opacity:1}\n"] }]
95
- }], propDecorators: { tuiNavigationAside: [{
96
- type: Input
97
- }] } });
91
+ }] });
98
92
 
99
93
  class TuiAsideGroupComponent {
100
94
  constructor() {
95
+ this.datalist = viewChild('datalist');
96
+ this.chevron = contentChild(TuiChevron);
101
97
  this.aside = inject(TuiAsideComponent);
102
- this.open = signal(false);
103
- this.template = null;
98
+ this.template = contentChild(TemplateRef);
104
99
  this.expanded = computed(() => this.aside.expanded() && this.open());
105
- this.binding = tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', computed(() => (this.aside.expanded() ? null : this.datalist)));
106
- this.openChange = toObservable(this.open).pipe(skip(1));
100
+ this.chevronEffect = effect(() => {
101
+ const chevron = this.chevron();
102
+ if (chevron) {
103
+ tuiSetSignal(chevron.rotated, this.expanded());
104
+ }
105
+ });
106
+ this.binding = tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', computed(() => (this.aside.expanded() ? null : this.datalist())));
107
107
  this.size = 's';
108
+ this.open = model(false);
108
109
  }
109
- set openSetter(open) {
110
- this.toggle(open);
111
- }
112
- toggle(open = !this.open()) {
113
- this.open.set(open && this.aside.expanded());
114
- this.chevron?.chevron.set(this.open());
110
+ toggle() {
111
+ if (this.aside.expanded()) {
112
+ this.open.set(!this.open());
113
+ }
115
114
  }
116
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAsideGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiAsideGroupComponent, isStandalone: true, selector: "tui-aside-group", inputs: { openSetter: ["open", "openSetter"] }, outputs: { openChange: "openChange" }, providers: [tuiAsDataListHost(TuiAsideGroupComponent)], queries: [{ propertyName: "chevron", first: true, predicate: TuiChevron, descendants: true, static: true }, { propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "datalist", first: true, predicate: ["datalist"], descendants: true, static: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiDropdownHover }, { directive: i1.TuiDropdownPositionSided }, { directive: i1.TuiDropdownOpen }], ngImport: i0, template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n", dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "component", type: i3.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: TuiAsideGroupComponent, isStandalone: true, selector: "tui-aside-group", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, providers: [tuiAsDataListHost(TuiAsideGroupComponent)], queries: [{ propertyName: "chevron", first: true, predicate: TuiChevron, descendants: true, isSignal: true }, { propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "datalist", first: true, predicate: ["datalist"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiDropdownHover }, { directive: i1.TuiDropdownPositionSided }, { directive: i1.TuiDropdownOpen }], ngImport: i0, template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template()\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template()\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n", dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "component", type: TuiExpand, selector: "tui-expand", inputs: ["expanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
118
117
  }
119
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAsideGroupComponent, decorators: [{
120
119
  type: Component,
@@ -123,39 +122,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
123
122
  TuiDropdownHover,
124
123
  TuiDropdownPositionSided,
125
124
  TuiDropdownOpen,
126
- ], template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n" }]
127
- }], propDecorators: { datalist: [{
128
- type: ViewChild,
129
- args: ['datalist', { static: true }]
130
- }], chevron: [{
131
- type: ContentChild,
132
- args: [TuiChevron, { static: true }]
133
- }], template: [{
134
- type: ContentChild,
135
- args: [TemplateRef]
136
- }], openChange: [{
137
- type: Output
138
- }], openSetter: [{
139
- type: Input,
140
- args: ['open']
141
- }] } });
125
+ ], template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template()\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template()\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n" }]
126
+ }] });
142
127
 
143
128
  class TuiHintAsideDirective {
144
129
  constructor() {
145
130
  this.el = tuiInjectElement();
146
131
  this.aside = inject(TuiAsideComponent);
147
132
  this.dropdown = inject(TuiDropdownDirective, { optional: true });
148
- this.binding = tuiDirectiveBinding(TuiHintDirective, 'tuiHint', computed(() => this.aside.expanded() || this.dropdown
149
- ? ''
150
- : () => this.el.textContent?.trim()));
133
+ this.tuiHintAside = input(null);
134
+ this.binding = tuiDirectiveBinding(TuiHintDirective, 'content', computed(() => {
135
+ const hint = this.tuiHintAside();
136
+ const expanded = this.aside.expanded();
137
+ return expanded || this.dropdown
138
+ ? ''
139
+ : hint || (() => this.el.textContent?.trim());
140
+ }));
151
141
  }
152
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintAsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
153
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintAsideDirective, isStandalone: true, selector: "[tuiHintAside]", providers: [tuiHintOptionsProvider({ direction: 'right' })], hostDirectives: [{ directive: i1$1.TuiHintDirective }], ngImport: i0 }); }
143
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintAsideDirective, isStandalone: true, selector: "[tuiHintAside]", inputs: { tuiHintAside: { classPropertyName: "tuiHintAside", publicName: "tuiHintAside", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiHintOptionsProvider({ direction: 'right' })], hostDirectives: [{ directive: i1$1.TuiHintDirective }], ngImport: i0 }); }
154
144
  }
155
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintAsideDirective, decorators: [{
156
146
  type: Directive,
157
147
  args: [{
158
- standalone: true,
159
148
  selector: '[tuiHintAside]',
160
149
  providers: [tuiHintOptionsProvider({ direction: 'right' })],
161
150
  hostDirectives: [TuiHintDirective],
@@ -171,16 +160,15 @@ class TuiAsideItemDirective {
171
160
  this.size = 's';
172
161
  }
173
162
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAsideItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
174
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiAsideItemDirective, isStandalone: true, selector: "[tuiAsideItem]", host: { attributes: { "tuiButton": "", "tuiOption": "" }, properties: { "class._link": "link", "class._active": "active()", "class._custom": "icon !== icons.iconEnd()" } }, providers: [
163
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiAsideItemDirective, isStandalone: true, selector: "[tuiAsideItem]", host: { attributes: { "tuiButton": "", "tuiOption": "", "tuiAsideItem": "" }, properties: { "class._link": "link", "class._active": "active()", "class._custom": "icon !== icons.iconEnd()" } }, providers: [
175
164
  tuiAsDataListHost(TuiAsideItemDirective),
176
165
  provideIcon(),
177
166
  provideDropdown(),
178
- ], hostDirectives: [{ directive: TuiHintAsideDirective }, { directive: i1.TuiDropdownManual }, { directive: i1.TuiDropdownPositionSided }, { directive: i3$1.TuiButton }, { directive: i4.RouterLinkActive, inputs: ["routerLinkActiveOptions", "routerLinkActiveOptions"] }], ngImport: i0 }); }
167
+ ], hostDirectives: [{ directive: TuiHintAsideDirective, inputs: ["tuiHintAside", "tuiAsideItem"] }, { directive: i1.TuiDropdownManual }, { directive: i1.TuiDropdownPositionSided }, { directive: i3.TuiButton }, { directive: i4.RouterLinkActive, inputs: ["routerLinkActiveOptions", "routerLinkActiveOptions"] }], ngImport: i0 }); }
179
168
  }
180
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAsideItemDirective, decorators: [{
181
170
  type: Directive,
182
171
  args: [{
183
- standalone: true,
184
172
  selector: '[tuiAsideItem]',
185
173
  providers: [
186
174
  tuiAsDataListHost(TuiAsideItemDirective),
@@ -188,7 +176,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
188
176
  provideDropdown(),
189
177
  ],
190
178
  hostDirectives: [
191
- TuiHintAsideDirective,
179
+ {
180
+ directive: TuiHintAsideDirective,
181
+ inputs: ['tuiHintAside:tuiAsideItem'],
182
+ },
192
183
  TuiDropdownManual,
193
184
  TuiDropdownPositionSided,
194
185
  TuiButton,
@@ -200,6 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
200
191
  host: {
201
192
  tuiButton: '',
202
193
  tuiOption: '',
194
+ tuiAsideItem: '',
203
195
  '[class._link]': 'link',
204
196
  '[class._active]': 'active()',
205
197
  '[class._custom]': 'icon !== icons.iconEnd()',
@@ -237,7 +229,6 @@ function provideDropdown() {
237
229
  class TuiDrawerComponent {
238
230
  constructor() {
239
231
  this.directive = inject(TuiDropdownDirective);
240
- this.animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
241
232
  this.top = tuiIsHTMLElement(this.directive.el.offsetParent) &&
242
233
  tuiIsHTMLElement(this.directive.el.offsetParent.offsetParent)
243
234
  ? this.directive.el.offsetParent.getBoundingClientRect().bottom -
@@ -245,9 +236,9 @@ class TuiDrawerComponent {
245
236
  : 0;
246
237
  }
247
238
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDrawerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiTheme": "dark" }, properties: { "style.top.px": "top" } }, hostDirectives: [{ directive: i1$2.TuiActiveZone }, { directive: i2$1.TuiAnimated }], ngImport: i0, template: `
239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDrawerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiTheme": "dark" }, properties: { "style.inset-block-start.px": "top" } }, hostDirectives: [{ directive: i1$2.TuiActiveZone }, { directive: i2$1.TuiAnimated }], ngImport: i0, template: `
249
240
  <tui-scrollbar [style.height.%]="100">
250
- <ng-container *polymorpheusOutlet="directive._content()" />
241
+ <ng-container *polymorpheusOutlet="directive.content()" />
251
242
  </tui-scrollbar>
252
243
  `, isInline: true, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
253
244
  }
@@ -255,29 +246,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
255
246
  type: Component,
256
247
  args: [{ imports: [PolymorpheusOutlet, TuiScrollbar], template: `
257
248
  <tui-scrollbar [style.height.%]="100">
258
- <ng-container *polymorpheusOutlet="directive._content()" />
249
+ <ng-container *polymorpheusOutlet="directive.content()" />
259
250
  </tui-scrollbar>
260
251
  `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiActiveZone, TuiAnimated], host: {
261
252
  tuiTheme: 'dark',
262
- '[style.top.px]': 'top',
253
+ '[style.inset-block-start.px]': 'top',
263
254
  }, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"] }]
264
255
  }] });
265
256
  class TuiDrawerDirective {
266
257
  constructor() {
267
258
  this.x = inject(TUI_COMMON_ICONS).close;
268
- this.icons = inject(TuiIcons);
269
259
  this.dropdown = tuiDropdown(null);
270
- this.open = inject(TuiDropdownOpen);
271
- }
272
- ngDoCheck() {
273
- // TODO: Refactor to tuiDirectiveBinding
274
- tuiSetSignal(this.icons.iconStart, this.open.tuiDropdownOpen ? this.x : '');
275
- }
276
- set template(template) {
277
- this.dropdown.set(template);
260
+ this.open = inject(TuiDropdownOpen).open;
261
+ this.template = viewChild(TemplateRef);
262
+ this.ef = effect(() => this.dropdown.set(this.template()));
263
+ this.icon = tuiIconStart(computed(() => (this.open() ? this.x : '')));
278
264
  }
279
265
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDrawerDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDrawerDirective, isStandalone: true, selector: "[tuiIconButton][tuiNavigationDrawer]", providers: [
266
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: TuiDrawerDirective, isStandalone: true, selector: "[tuiIconButton][tuiNavigationDrawer]", providers: [
281
267
  tuiButtonOptionsProvider({ appearance: 'secondary-grayscale' }),
282
268
  {
283
269
  provide: TUI_ICON_END,
@@ -287,12 +273,11 @@ class TuiDrawerDirective {
287
273
  provide: TUI_DROPDOWN_COMPONENT,
288
274
  useValue: TuiDrawerComponent,
289
275
  },
290
- ], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }], ngImport: i0, template: '<ng-template><ng-content /></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
276
+ ], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }], ngImport: i0, template: '<ng-template><ng-content /></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
291
277
  }
292
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDrawerDirective, decorators: [{
293
279
  type: Component,
294
280
  args: [{
295
- standalone: true,
296
281
  // TODO: move to host directives
297
282
  selector: '[tuiIconButton][tuiNavigationDrawer]',
298
283
  template: '<ng-template><ng-content /></ng-template>',
@@ -310,10 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
310
295
  ],
311
296
  hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen],
312
297
  }]
313
- }], propDecorators: { template: [{
314
- type: ViewChild,
315
- args: [TemplateRef]
316
- }] } });
298
+ }] });
317
299
 
318
300
  class TuiHeaderComponent {
319
301
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -324,17 +306,19 @@ class TuiHeaderComponent {
324
306
  tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
325
307
  tuiDropdownOptionsProvider({ appearance: 'dropdown-navigation' }),
326
308
  tuiTextfieldOptionsProvider({ size: signal('s') }),
309
+ tuiHintOptionsProvider({ appearance: 'floating' }),
327
310
  ], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["header[tuiNavigationHeader][tuiNavigationHeader]{position:sticky;top:0;left:0;z-index:2;display:flex;inset-inline-start:0;block-size:3rem;inline-size:100vw;align-items:center;gap:.25rem;padding:.5rem;box-sizing:border-box;font:var(--tui-font-text-s);line-height:1rem;background:var(--tui-theme-color, #000);color:var(--tui-text-primary);box-shadow:0 -100rem 0 100rem var(--tui-theme-color, #000)}header[tuiNavigationHeader][tuiNavigationHeader]:before{content:\"\";position:absolute;top:100%;left:0;right:0;z-index:-1;block-size:3rem;pointer-events:none;box-shadow:0 -1.5rem var(--tui-theme-color, #000);border-radius:1.25rem 1.25rem 0 0}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo]{padding:0 .5rem;margin:0 1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo] tui-icon{font-size:1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]{display:flex;gap:.5rem;min-inline-size:12rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:not(:last-child){flex:1 0 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:last-child{min-inline-size:3rem;flex:1 1 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiButton],header[tuiNavigationHeader][tuiNavigationHeader] [tuiBadge],header[tuiNavigationHeader][tuiNavigationHeader] [tuiChip],header[tuiNavigationHeader][tuiNavigationHeader] tui-badge,header[tuiNavigationHeader][tuiNavigationHeader] tui-chip{max-inline-size:12.5rem}header[tuiNavigationHeader][tuiNavigationHeader] hr{flex:1;block-size:calc(100% + 1rem);min-inline-size:4rem;margin:-.5rem 0;border:none;flex-shrink:0;background:transparent;mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}header[tuiNavigationHeader][tuiNavigationHeader] hr~[tuiButton]{margin-inline-end:.5rem}header[tuiNavigationHeader][tuiNavigationHeader] tui-textfield{inline-size:12rem;margin-inline-end:1.75rem}tui-dropdown[data-appearance=dropdown-navigation]{border:none;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
328
311
  }
329
312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHeaderComponent, decorators: [{
330
313
  type: Component,
331
- args: [{ standalone: true, selector: 'header[tuiNavigationHeader]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
314
+ args: [{ selector: 'header[tuiNavigationHeader]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
332
315
  tuiAvatarOptionsProvider({ size: 's', appearance: 'secondary-grayscale' }),
333
316
  tuiBadgeNotificationOptionsProvider({ size: 'xs' }),
334
317
  tuiBadgeOptionsProvider({ size: 'm', appearance: 'primary' }),
335
318
  tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
336
319
  tuiDropdownOptionsProvider({ appearance: 'dropdown-navigation' }),
337
320
  tuiTextfieldOptionsProvider({ size: signal('s') }),
321
+ tuiHintOptionsProvider({ appearance: 'floating' }),
338
322
  ], host: {
339
323
  tuiTheme: 'dark',
340
324
  }, styles: ["header[tuiNavigationHeader][tuiNavigationHeader]{position:sticky;top:0;left:0;z-index:2;display:flex;inset-inline-start:0;block-size:3rem;inline-size:100vw;align-items:center;gap:.25rem;padding:.5rem;box-sizing:border-box;font:var(--tui-font-text-s);line-height:1rem;background:var(--tui-theme-color, #000);color:var(--tui-text-primary);box-shadow:0 -100rem 0 100rem var(--tui-theme-color, #000)}header[tuiNavigationHeader][tuiNavigationHeader]:before{content:\"\";position:absolute;top:100%;left:0;right:0;z-index:-1;block-size:3rem;pointer-events:none;box-shadow:0 -1.5rem var(--tui-theme-color, #000);border-radius:1.25rem 1.25rem 0 0}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo]{padding:0 .5rem;margin:0 1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo] tui-icon{font-size:1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]{display:flex;gap:.5rem;min-inline-size:12rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:not(:last-child){flex:1 0 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:last-child{min-inline-size:3rem;flex:1 1 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiButton],header[tuiNavigationHeader][tuiNavigationHeader] [tuiBadge],header[tuiNavigationHeader][tuiNavigationHeader] [tuiChip],header[tuiNavigationHeader][tuiNavigationHeader] tui-badge,header[tuiNavigationHeader][tuiNavigationHeader] tui-chip{max-inline-size:12.5rem}header[tuiNavigationHeader][tuiNavigationHeader] hr{flex:1;block-size:calc(100% + 1rem);min-inline-size:4rem;margin:-.5rem 0;border:none;flex-shrink:0;background:transparent;mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}header[tuiNavigationHeader][tuiNavigationHeader] hr~[tuiButton]{margin-inline-end:.5rem}header[tuiNavigationHeader][tuiNavigationHeader] tui-textfield{inline-size:12rem;margin-inline-end:1.75rem}tui-dropdown[data-appearance=dropdown-navigation]{border:none;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}\n"] }]
@@ -346,7 +330,7 @@ class TuiLogoComponent {
346
330
  }
347
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiLogoComponent, decorators: [{
348
332
  type: Component,
349
- args: [{ standalone: true, selector: '[tuiNavigationLogo]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["[tuiNavigationLogo]{display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;font-weight:700}\n"] }]
333
+ args: [{ selector: '[tuiNavigationLogo]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["[tuiNavigationLogo]{display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;font-weight:700}\n"] }]
350
334
  }] });
351
335
 
352
336
  class TuiMainComponent {
@@ -355,7 +339,7 @@ class TuiMainComponent {
355
339
  }
356
340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiMainComponent, decorators: [{
357
341
  type: Component,
358
- args: [{ standalone: true, selector: 'main[tuiNavigationMain]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
342
+ args: [{ selector: 'main[tuiNavigationMain]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
359
343
  tuiNavigationMain: '',
360
344
  }, styles: ["main[tuiNavigationMain]{transition-property:max-width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,8.5625rem));align-items:start;gap:0 1rem;place-content:start center;flex:1;border:1.5rem solid transparent;border-block-start:0;isolation:isolate;box-sizing:border-box}main[tuiNavigationMain]>*{grid-column:span 12;max-inline-size:100%}main[tuiNavigationMain]>nav[tuiNavigationNav]:not(:first-child){border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 100vw;box-shadow:inset 0 -1px var(--tui-border-normal)}main[tuiNavigationMain]>[tuiHeader]{margin:1rem 0 .5rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]{flex-direction:column;gap:1rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]>:last-child:not([tuiTitle]){margin-block-end:.25rem}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiTitle]{max-inline-size:42rem;margin-inline-end:auto;white-space:nowrap;gap:.375rem;overflow:hidden}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiSubtitle]{display:-webkit-box;-webkit-box-orient:block-axis;-webkit-line-clamp:2;white-space:normal;word-break:break-word;font:var(--tui-font-text-s);overflow:hidden}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]{scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:1rem;color:var(--tui-text-tertiary);font:var(--tui-font-text-s);white-space:nowrap;text-transform:none;overflow:auto}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar,main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar-thumb{display:none}main[tuiNavigationMain]>[tuiHeader] [tuiCaption] tui-icon{font-size:1rem;margin:.125rem 0;color:var(--tui-text-secondary)}main[tuiNavigationMain]>[tuiHeader] [tuiAccessories]{margin-inline-start:3rem;gap:.5rem!important}main[tuiNavigationMain]>a:first-child,main[tuiNavigationMain]>button:first-child,main[tuiNavigationMain]>tui-breadcrumbs:first-child{block-size:1.25rem;padding:0;margin-block-start:.875rem;justify-self:flex-start}\n"] }]
361
345
  }] });
@@ -370,7 +354,7 @@ class TuiNavComponent {
370
354
  }
371
355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNavComponent, decorators: [{
372
356
  type: Component,
373
- args: [{ standalone: true, selector: 'nav[tuiNavigationNav]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
357
+ args: [{ selector: 'nav[tuiNavigationNav]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
374
358
  tuiBadgeOptionsProvider({ size: 'm' }),
375
359
  tuiButtonOptionsProvider({ size: 's' }),
376
360
  tuiTabsOptionsProvider({ size: 'm' }),
@@ -383,6 +367,7 @@ const PROVIDERS = [
383
367
  tuiLinkOptionsProvider({ appearance: 'action-grayscale' }),
384
368
  tuiTabsOptionsProvider({ size: 'm' }),
385
369
  tuiDropdownOptionsProvider({ align: 'right' }),
370
+ tuiBadgeOptionsProvider({ size: 'm' }),
386
371
  ];
387
372
  class TuiSubheaderComponent {
388
373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSubheaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -399,7 +384,7 @@ class TuiSubheaderComponent {
399
384
  }
400
385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSubheaderComponent, decorators: [{
401
386
  type: Component,
402
- args: [{ standalone: true, selector: '[tuiSubheader]:not([compact]),[tuiNavigationSubheader]:not([compact])', template: `
387
+ args: [{ selector: '[tuiSubheader]:not([compact]),[tuiNavigationSubheader]:not([compact])', template: `
403
388
  <ng-content select="[tuiLink]" />
404
389
  <ng-content select="tui-breadcrumbs" />
405
390
  <ng-content select="[tuiHeader]" />
@@ -424,7 +409,7 @@ class TuiSubheaderCompactComponent {
424
409
  }
425
410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSubheaderCompactComponent, decorators: [{
426
411
  type: Component,
427
- args: [{ standalone: true, selector: '[tuiSubheader][compact],[tuiNavigationSubheader][compact]', template: `
412
+ args: [{ selector: '[tuiSubheader][compact],[tuiNavigationSubheader][compact]', template: `
428
413
  <div class="t-nav-subheader">
429
414
  <ng-content />
430
415
  <ng-content