@taiga-ui/layout 4.4.1 → 4.5.0-canary.10e0b5f

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 (43) hide show
  1. package/components/navigation/aside-item.directive.d.ts +1 -1
  2. package/components/navigation/drawer.component.d.ts +14 -0
  3. package/components/navigation/hint-aside.directive.d.ts +3 -3
  4. package/components/navigation/index.d.ts +1 -0
  5. package/components/navigation/navigation.d.ts +3 -2
  6. package/esm2022/components/app-bar/app-bar.component.mjs +5 -5
  7. package/esm2022/components/block-details/block-details.directive.mjs +2 -2
  8. package/esm2022/components/block-status/block-status.component.mjs +2 -2
  9. package/esm2022/components/card/card.directive.mjs +2 -2
  10. package/esm2022/components/cell/cell.directive.mjs +2 -2
  11. package/esm2022/components/header/header.directive.mjs +2 -2
  12. package/esm2022/components/navigation/aside-item.directive.mjs +4 -4
  13. package/esm2022/components/navigation/aside.component.mjs +3 -3
  14. package/esm2022/components/navigation/drawer.component.mjs +89 -0
  15. package/esm2022/components/navigation/header.component.mjs +2 -2
  16. package/esm2022/components/navigation/hint-aside.directive.mjs +6 -6
  17. package/esm2022/components/navigation/index.mjs +2 -1
  18. package/esm2022/components/navigation/main.component.mjs +2 -2
  19. package/esm2022/components/navigation/nav.component.mjs +2 -2
  20. package/esm2022/components/navigation/navigation.mjs +5 -3
  21. package/esm2022/components/search/search-filters.component.mjs +8 -5
  22. package/esm2022/components/search/search.component.mjs +2 -2
  23. package/esm2022/tokens/common-icons.mjs +14 -5
  24. package/fesm2022/taiga-ui-layout-components-app-bar.mjs +4 -4
  25. package/fesm2022/taiga-ui-layout-components-app-bar.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-layout-components-block-details.mjs +2 -2
  27. package/fesm2022/taiga-ui-layout-components-block-details.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-layout-components-block-status.mjs +2 -2
  29. package/fesm2022/taiga-ui-layout-components-block-status.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-layout-components-card.mjs +2 -2
  31. package/fesm2022/taiga-ui-layout-components-card.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-layout-components-cell.mjs +2 -2
  33. package/fesm2022/taiga-ui-layout-components-cell.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-layout-components-header.mjs +2 -2
  35. package/fesm2022/taiga-ui-layout-components-header.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-layout-components-navigation.mjs +98 -18
  37. package/fesm2022/taiga-ui-layout-components-navigation.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-layout-components-search.mjs +9 -6
  39. package/fesm2022/taiga-ui-layout-components-search.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-layout-tokens.mjs +14 -5
  41. package/fesm2022/taiga-ui-layout-tokens.mjs.map +1 -1
  42. package/package.json +94 -94
  43. package/tokens/common-icons.d.ts +17 -3
@@ -1,6 +1,6 @@
1
1
  import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
2
  import * as i0 from '@angular/core';
3
- import { signal, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, TemplateRef, ViewChild, NgZone, computed, ElementRef, ContentChildren, Input } from '@angular/core';
3
+ import { signal, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, TemplateRef, ViewChild, computed, ElementRef, ContentChildren, Input } from '@angular/core';
4
4
  import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
5
5
  import * as i1$1 from '@taiga-ui/core/components/textfield';
6
6
  import { tuiTextfieldOptionsProvider, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
@@ -26,7 +26,7 @@ class TuiSearchComponent {
26
26
  tuiBlockOptionsProvider({ size: 's' }),
27
27
  tuiSwitchOptionsProvider({ size: 's' }),
28
28
  tuiTextfieldOptionsProvider({ size: signal('m') }),
29
- ], ngImport: i0, template: '<ng-content/>', isInline: true, styles: ["search[tuiSearch] form{display:flex;flex-direction:column;gap:.75rem}search[tuiSearch] form fieldset{display:flex;align-items:center;flex-wrap:wrap;gap:inherit;min-width:0;padding:0;margin:0;border:0;color:var(--tui-text-secondary)}search[tuiSearch] form tui-items-with-more{min-width:0;flex:1}search[tuiSearch] form tui-textfield{flex:1;min-width:11.25rem;max-width:22.5rem}search[tuiSearch] form tui-textfield:first-child{max-width:unset}search[tuiSearch] form hr{width:1px;height:1rem;background:var(--tui-border-normal)}search[tuiSearch] form tui-filter{white-space:nowrap}search[tuiSearch] form [tuiLabel]{font:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
+ ], ngImport: i0, template: '<ng-content/>', isInline: true, styles: ["search[tuiSearch] form{display:flex;flex-direction:column;gap:.75rem}search[tuiSearch] form fieldset{display:flex;align-items:center;flex-wrap:wrap;gap:inherit;min-inline-size:0;padding:0;margin:0;border:0;color:var(--tui-text-secondary)}search[tuiSearch] form tui-items-with-more{min-inline-size:0;flex:1}search[tuiSearch] form tui-textfield{flex:1;min-inline-size:11.25rem;max-inline-size:22.5rem}search[tuiSearch] form tui-textfield:first-child{max-inline-size:unset}search[tuiSearch] form hr{inline-size:1px;block-size:1rem;background:var(--tui-border-normal)}search[tuiSearch] form tui-filter{white-space:nowrap}search[tuiSearch] form [tuiLabel]{font:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSearchComponent, decorators: [{
32
32
  type: Component,
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35
35
  tuiBlockOptionsProvider({ size: 's' }),
36
36
  tuiSwitchOptionsProvider({ size: 's' }),
37
37
  tuiTextfieldOptionsProvider({ size: signal('m') }),
38
- ], styles: ["search[tuiSearch] form{display:flex;flex-direction:column;gap:.75rem}search[tuiSearch] form fieldset{display:flex;align-items:center;flex-wrap:wrap;gap:inherit;min-width:0;padding:0;margin:0;border:0;color:var(--tui-text-secondary)}search[tuiSearch] form tui-items-with-more{min-width:0;flex:1}search[tuiSearch] form tui-textfield{flex:1;min-width:11.25rem;max-width:22.5rem}search[tuiSearch] form tui-textfield:first-child{max-width:unset}search[tuiSearch] form hr{width:1px;height:1rem;background:var(--tui-border-normal)}search[tuiSearch] form tui-filter{white-space:nowrap}search[tuiSearch] form [tuiLabel]{font:inherit}\n"] }]
38
+ ], styles: ["search[tuiSearch] form{display:flex;flex-direction:column;gap:.75rem}search[tuiSearch] form fieldset{display:flex;align-items:center;flex-wrap:wrap;gap:inherit;min-inline-size:0;padding:0;margin:0;border:0;color:var(--tui-text-secondary)}search[tuiSearch] form tui-items-with-more{min-inline-size:0;flex:1}search[tuiSearch] form tui-textfield{flex:1;min-inline-size:11.25rem;max-inline-size:22.5rem}search[tuiSearch] form tui-textfield:first-child{max-inline-size:unset}search[tuiSearch] form hr{inline-size:1px;block-size:1rem;background:var(--tui-border-normal)}search[tuiSearch] form tui-filter{white-space:nowrap}search[tuiSearch] form [tuiLabel]{font:inherit}\n"] }]
39
39
  }] });
40
40
 
41
41
  class TuiSearchFilterComponent {
@@ -81,7 +81,10 @@ class TuiSearchFiltersComponent {
81
81
  this.children = EMPTY_QUERY;
82
82
  this.controls = signal([]);
83
83
  this.templates = EMPTY_QUERY;
84
- this.overflown = toSignal(inject(ResizeObserverService, { self: true }).pipe(map(([{ contentRect }]) => Math.floor((contentRect.width - this.more) / WIDTH / this.unit)), distinctUntilChanged(), tuiZonefull(inject(NgZone))), { initialValue: 0 });
84
+ this.overflown = toSignal(inject(ResizeObserverService, { self: true }).pipe(map((entry) => {
85
+ const width = entry[0]?.contentRect.width ?? 0;
86
+ return Math.floor((width - this.more) / WIDTH / this.unit);
87
+ }), distinctUntilChanged(), tuiZonefull()), { initialValue: 0 });
85
88
  this.enabled = computed(() => this.controls().some(({ control }, index) => control && index >= this.overflown() && !tuiIsControlEmpty(control)));
86
89
  this.size = 'm';
87
90
  }
@@ -108,7 +111,7 @@ class TuiSearchFiltersComponent {
108
111
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSearchFiltersComponent, isStandalone: true, selector: "tui-search-filters", inputs: { size: "size" }, providers: [
109
112
  ResizeObserverService,
110
113
  tuiButtonOptionsProvider({ size: 'xs', appearance: 'flat' }),
111
- ], queries: [{ propertyName: "children", predicate: NgControl, descendants: true }, { propertyName: "templates", predicate: TuiItem, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "rem", first: true, predicate: ["rem"], descendants: true }, { propertyName: "button", first: true, predicate: TuiButton, descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1$1.TuiTextfieldOptionsDirective, inputs: ["tuiTextfieldSize", "size"] }], ngImport: i0, template: "<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n", styles: [":host{display:flex;flex:1;gap:inherit;justify-content:flex-end;min-width:0}.t-rem{position:absolute;width:1rem}.t-button{overflow:visible}.t-button._active:after{content:\"\";position:absolute;top:.25rem;right:.25rem;display:block;width:.625rem;height:.625rem;background:var(--tui-status-warning);transform:translate(50%,-50%);border-radius:100%;margin:0}.t-form{display:flex;min-width:25.5rem;max-width:33rem;flex-direction:column;gap:.75rem;padding:0 1.5rem 1.5rem;box-sizing:border-box}.t-header{display:flex;justify-content:space-between;padding:1.25rem 0;margin:0 0 .5rem;border:none;box-shadow:inset 0 -1px var(--tui-border-normal);font:var(--tui-font-text-ui-l);font-weight:700}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TuiSearchFilterComponent, selector: "button[tuiSearchFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
+ ], queries: [{ propertyName: "children", predicate: NgControl, descendants: true }, { propertyName: "templates", predicate: TuiItem, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "rem", first: true, predicate: ["rem"], descendants: true }, { propertyName: "button", first: true, predicate: TuiButton, descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1$1.TuiTextfieldOptionsDirective, inputs: ["tuiTextfieldSize", "size"] }], ngImport: i0, template: "<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n", styles: [":host{display:flex;flex:1;gap:inherit;justify-content:flex-end;min-inline-size:0}.t-rem{position:absolute;inline-size:1rem}.t-button{overflow:visible}.t-button._active:after{content:\"\";position:absolute;top:.25rem;right:.25rem;display:block;inline-size:.625rem;block-size:.625rem;background:var(--tui-status-warning);transform:translate(50%,-50%);border-radius:100%;margin:0}.t-form{display:flex;min-inline-size:25.5rem;max-inline-size:33rem;flex-direction:column;gap:.75rem;padding:0 1.5rem 1.5rem;box-sizing:border-box}.t-header{display:flex;justify-content:space-between;padding:1.25rem 0;margin:0 0 .5rem;border:none;box-shadow:inset 0 -1px var(--tui-border-normal);font:var(--tui-font-text-ui-l);font-weight:700}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TuiSearchFilterComponent, selector: "button[tuiSearchFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
115
  }
113
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSearchFiltersComponent, decorators: [{
114
117
  type: Component,
@@ -120,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
120
123
  directive: TuiTextfieldOptionsDirective,
121
124
  inputs: ['tuiTextfieldSize: size'],
122
125
  },
123
- ], template: "<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n", styles: [":host{display:flex;flex:1;gap:inherit;justify-content:flex-end;min-width:0}.t-rem{position:absolute;width:1rem}.t-button{overflow:visible}.t-button._active:after{content:\"\";position:absolute;top:.25rem;right:.25rem;display:block;width:.625rem;height:.625rem;background:var(--tui-status-warning);transform:translate(50%,-50%);border-radius:100%;margin:0}.t-form{display:flex;min-width:25.5rem;max-width:33rem;flex-direction:column;gap:.75rem;padding:0 1.5rem 1.5rem;box-sizing:border-box}.t-header{display:flex;justify-content:space-between;padding:1.25rem 0;margin:0 0 .5rem;border:none;box-shadow:inset 0 -1px var(--tui-border-normal);font:var(--tui-font-text-ui-l);font-weight:700}\n"] }]
126
+ ], template: "<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n", styles: [":host{display:flex;flex:1;gap:inherit;justify-content:flex-end;min-inline-size:0}.t-rem{position:absolute;inline-size:1rem}.t-button{overflow:visible}.t-button._active:after{content:\"\";position:absolute;top:.25rem;right:.25rem;display:block;inline-size:.625rem;block-size:.625rem;background:var(--tui-status-warning);transform:translate(50%,-50%);border-radius:100%;margin:0}.t-form{display:flex;min-inline-size:25.5rem;max-inline-size:33rem;flex-direction:column;gap:.75rem;padding:0 1.5rem 1.5rem;box-sizing:border-box}.t-header{display:flex;justify-content:space-between;padding:1.25rem 0;margin:0 0 .5rem;border:none;box-shadow:inset 0 -1px var(--tui-border-normal);font:var(--tui-font-text-ui-l);font-weight:700}\n"] }]
124
127
  }], propDecorators: { rem: [{
125
128
  type: ViewChild,
126
129
  args: ['rem']
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-components-search.mjs","sources":["../../../projects/layout/components/search/search.component.ts","../../../projects/layout/components/search/search-filter.component.ts","../../../projects/layout/components/search/search-filters.component.ts","../../../projects/layout/components/search/search-filters.template.html","../../../projects/layout/components/search/search.ts","../../../projects/layout/components/search/taiga-ui-layout-components-search.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiTextfieldOptionsProvider} from '@taiga-ui/core/components/textfield';\nimport {tuiBlockOptionsProvider} from '@taiga-ui/kit/components/block';\nimport {tuiSwitchOptionsProvider} from '@taiga-ui/kit/components/switch';\n\n@Component({\n standalone: true,\n selector: 'search[tuiSearch]',\n template: '<ng-content/>',\n styleUrls: ['./search.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'm'}),\n tuiBlockOptionsProvider({size: 's'}),\n tuiSwitchOptionsProvider({size: 's'}),\n tuiTextfieldOptionsProvider({size: signal('m')}),\n ],\n})\nexport class TuiSearchComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n tuiDropdown,\n TuiDropdownDirective,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_START} from '@taiga-ui/core/tokens';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/layout/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'button[tuiSearchFilter]',\n template: '<ng-template><ng-content /></ng-template>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiDropdownOptionsProvider({align: 'right'}),\n {\n provide: TUI_ICON_START,\n useFactory: () => inject(TUI_COMMON_ICONS).filter,\n },\n ],\n hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen],\n})\nexport class TuiSearchFilterComponent {\n private readonly dropdown = tuiDropdown(null);\n\n @ViewChild(TemplateRef)\n protected set template(template: PolymorpheusContent) {\n this.dropdown.set(template);\n }\n}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {\n tuiControlValue,\n tuiQueryListChanges,\n tuiZonefull,\n} from '@taiga-ui/cdk/observables';\nimport {tuiIsControlEmpty} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiTextfieldOptionsDirective} from '@taiga-ui/core/components/textfield';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, map, merge, switchMap} from 'rxjs';\n\nimport {TuiSearchFilterComponent} from './search-filter.component';\n\nconst WIDTH = 12;\n\n@Component({\n standalone: true,\n selector: 'tui-search-filters',\n imports: [NgIf, TuiButton, NgForOf, NgTemplateOutlet, TuiSearchFilterComponent],\n templateUrl: './search-filters.template.html',\n styleUrls: ['./search-filters.styles.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ResizeObserverService,\n tuiButtonOptionsProvider({size: 'xs', appearance: 'flat'}),\n ],\n hostDirectives: [\n {\n directive: TuiTextfieldOptionsDirective,\n inputs: ['tuiTextfieldSize: size'],\n },\n ],\n})\nexport class TuiSearchFiltersComponent implements AfterContentInit {\n @ViewChild('rem')\n private readonly rem?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiButton, {read: ElementRef})\n private readonly button?: ElementRef<HTMLDivElement>;\n\n @ContentChildren(NgControl, {descendants: true})\n private readonly children: QueryList<NgControl> = EMPTY_QUERY;\n\n private readonly controls = signal<readonly NgControl[]>([]);\n\n @ContentChildren(TuiItem, {descendants: true, read: TemplateRef})\n protected readonly templates: QueryList<TemplateRef<any>> = EMPTY_QUERY;\n\n protected readonly overflown = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([{contentRect}]) =>\n Math.floor((contentRect.width - this.more) / WIDTH / this.unit),\n ),\n distinctUntilChanged(),\n tuiZonefull(inject(NgZone)),\n ),\n {initialValue: 0},\n );\n\n protected readonly enabled = computed(() =>\n this.controls().some(\n ({control}, index) =>\n control && index >= this.overflown() && !tuiIsControlEmpty(control),\n ),\n );\n\n @Input()\n public size: TuiSizeS = 'm';\n\n // TODO: Refactor to signal queries when Angular is updated\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.children)\n .pipe(\n switchMap((all) => merge(...all.map((c) => tuiControlValue(c)))),\n map(() => this.children.toArray()),\n )\n .subscribe((controls) => this.controls.set(controls));\n }\n\n protected onReset(): void {\n this.children.forEach(({control}, index) => {\n if (control && index >= this.overflown()) {\n control.setValue(null);\n }\n });\n }\n\n private get unit(): number {\n return this.rem?.nativeElement.offsetWidth || 16;\n }\n\n private get more(): number {\n return this.button?.nativeElement.clientWidth || 0;\n }\n}\n","<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiSearchComponent} from './search.component';\nimport {TuiSearchFiltersComponent} from './search-filters.component';\n\nexport const TuiSearch = [\n TuiSearchComponent,\n TuiSearchFiltersComponent,\n TuiItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-layout-components-search.mjs","sources":["../../../projects/layout/components/search/search.component.ts","../../../projects/layout/components/search/search-filter.component.ts","../../../projects/layout/components/search/search-filters.component.ts","../../../projects/layout/components/search/search-filters.template.html","../../../projects/layout/components/search/search.ts","../../../projects/layout/components/search/taiga-ui-layout-components-search.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiTextfieldOptionsProvider} from '@taiga-ui/core/components/textfield';\nimport {tuiBlockOptionsProvider} from '@taiga-ui/kit/components/block';\nimport {tuiSwitchOptionsProvider} from '@taiga-ui/kit/components/switch';\n\n@Component({\n standalone: true,\n selector: 'search[tuiSearch]',\n template: '<ng-content/>',\n styleUrls: ['./search.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'm'}),\n tuiBlockOptionsProvider({size: 's'}),\n tuiSwitchOptionsProvider({size: 's'}),\n tuiTextfieldOptionsProvider({size: signal('m')}),\n ],\n})\nexport class TuiSearchComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n tuiDropdown,\n TuiDropdownDirective,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_START} from '@taiga-ui/core/tokens';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/layout/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'button[tuiSearchFilter]',\n template: '<ng-template><ng-content /></ng-template>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiDropdownOptionsProvider({align: 'right'}),\n {\n provide: TUI_ICON_START,\n useFactory: () => inject(TUI_COMMON_ICONS).filter,\n },\n ],\n hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen],\n})\nexport class TuiSearchFilterComponent {\n private readonly dropdown = tuiDropdown(null);\n\n @ViewChild(TemplateRef)\n protected set template(template: PolymorpheusContent) {\n this.dropdown.set(template);\n }\n}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n inject,\n Input,\n type QueryList,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {\n tuiControlValue,\n tuiQueryListChanges,\n tuiZonefull,\n} from '@taiga-ui/cdk/observables';\nimport {tuiIsControlEmpty} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiTextfieldOptionsDirective} from '@taiga-ui/core/components/textfield';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, map, merge, switchMap} from 'rxjs';\n\nimport {TuiSearchFilterComponent} from './search-filter.component';\n\nconst WIDTH = 12;\n\n@Component({\n standalone: true,\n selector: 'tui-search-filters',\n imports: [NgIf, TuiButton, NgForOf, NgTemplateOutlet, TuiSearchFilterComponent],\n templateUrl: './search-filters.template.html',\n styleUrls: ['./search-filters.styles.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ResizeObserverService,\n tuiButtonOptionsProvider({size: 'xs', appearance: 'flat'}),\n ],\n hostDirectives: [\n {\n directive: TuiTextfieldOptionsDirective,\n inputs: ['tuiTextfieldSize: size'],\n },\n ],\n})\nexport class TuiSearchFiltersComponent implements AfterContentInit {\n @ViewChild('rem')\n private readonly rem?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiButton, {read: ElementRef})\n private readonly button?: ElementRef<HTMLDivElement>;\n\n @ContentChildren(NgControl, {descendants: true})\n private readonly children: QueryList<NgControl> = EMPTY_QUERY;\n\n private readonly controls = signal<readonly NgControl[]>([]);\n\n @ContentChildren(TuiItem, {descendants: true, read: TemplateRef})\n protected readonly templates: QueryList<TemplateRef<any>> = EMPTY_QUERY;\n\n protected readonly overflown = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map((entry) => {\n const width = entry[0]?.contentRect.width ?? 0;\n\n return Math.floor((width - this.more) / WIDTH / this.unit);\n }),\n distinctUntilChanged(),\n tuiZonefull(),\n ),\n {initialValue: 0},\n );\n\n protected readonly enabled = computed(() =>\n this.controls().some(\n ({control}, index) =>\n control && index >= this.overflown() && !tuiIsControlEmpty(control),\n ),\n );\n\n @Input()\n public size: TuiSizeS = 'm';\n\n // TODO: Refactor to signal queries when Angular is updated\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.children)\n .pipe(\n switchMap((all) => merge(...all.map((c) => tuiControlValue(c)))),\n map(() => this.children.toArray()),\n )\n .subscribe((controls) => this.controls.set(controls));\n }\n\n protected onReset(): void {\n this.children.forEach(({control}, index) => {\n if (control && index >= this.overflown()) {\n control.setValue(null);\n }\n });\n }\n\n private get unit(): number {\n return this.rem?.nativeElement.offsetWidth || 16;\n }\n\n private get more(): number {\n return this.button?.nativeElement.clientWidth || 0;\n }\n}\n","<ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i < overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n</ng-container>\n<div\n #rem\n class=\"t-rem\"\n></div>\n<button\n *ngIf=\"overflown() < templates.length\"\n appearance=\"secondary\"\n tuiIconButton\n tuiSearchFilter\n type=\"button\"\n class=\"t-button\"\n [class._active]=\"enabled()\"\n [size]=\"size\"\n>\n <form\n class=\"t-form\"\n (reset)=\"onReset()\"\n >\n <fieldset\n class=\"t-header\"\n [disabled]=\"!enabled()\"\n >\n <ng-content />\n </fieldset>\n <ng-container *ngFor=\"let template of templates; let i = index\">\n <ng-container\n *ngIf=\"i >= overflown()\"\n [ngTemplateOutlet]=\"template\"\n />\n </ng-container>\n </form>\n</button>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiSearchComponent} from './search.component';\nimport {TuiSearchFiltersComponent} from './search-filters.component';\n\nexport const TuiSearch = [\n TuiSearchComponent,\n TuiSearchFiltersComponent,\n TuiItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWA,MAca,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAPhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAAA;AACP,YAAA,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;AACrC,YAAA,uBAAuB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;AACpC,YAAA,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;YACrC,2BAA2B,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC;AACnD,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATS,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAWhB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,eAAe,EAEV,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;AACrC,wBAAA,uBAAuB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;AACpC,wBAAA,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;wBACrC,2BAA2B,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC;AACnD,qBAAA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA,CAAA;;;ACNL,MAca,wBAAwB,CAAA;AAdrC,IAAA,WAAA,GAAA;AAeqB,QAAA,IAAA,CAAA,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAMjD,KAAA;IAJG,IACc,QAAQ,CAAC,QAA6B,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC/B;+GANQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EATtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;AACP,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC5C,YAAA;AACI,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM;AACpD,aAAA;SACJ,EAMU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,iJAdZ,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAW5C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAdpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,2CAA2C;oBACrD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACP,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC5C,wBAAA;AACI,4BAAA,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM;AACpD,yBAAA;AACJ,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AAC9D,iBAAA,CAAA;8BAKiB,QAAQ,EAAA,CAAA;sBADrB,SAAS;uBAAC,WAAW,CAAA;;;ACD1B,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,MAkBa,yBAAyB,CAAA;AAlBtC,IAAA,WAAA,GAAA;QA0BqB,IAAQ,CAAA,QAAA,GAAyB,WAAW,CAAC;AAE7C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAuB,EAAE,CAAC,CAAC;QAG1C,IAAS,CAAA,SAAA,GAAgC,WAAW,CAAC;QAErD,IAAS,CAAA,SAAA,GAAG,QAAQ,CACnC,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,KAAK,KAAI;AACV,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC;AAE/C,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAC,CAAC,EACF,oBAAoB,EAAE,EACtB,WAAW,EAAE,CAChB,EACD,EAAC,YAAY,EAAE,CAAC,EAAC,CACpB,CAAC;AAEiB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAChB,CAAC,EAAC,OAAO,EAAC,EAAE,KAAK,KACb,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAC1E,CACJ,CAAC;QAGK,IAAI,CAAA,IAAA,GAAa,GAAG,CAAC;AA2B/B,KAAA;;IAxBU,kBAAkB,GAAA;AACrB,QAAA,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChE,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CACrC;AACA,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC7D;IAES,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,KAAK,KAAI;YACvC,IAAI,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACtC,gBAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IAAY,IAAI,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC;KACpD;AAED,IAAA,IAAY,IAAI,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC;KACtD;+GA9DQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAXvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;YACP,qBAAqB;YACrB,wBAAwB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;SAC7D,EAegB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAS,+DAKT,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAA4B,WAAW,EARpD,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,SAAS,2BAAS,UAAU,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzD3C,u7BAsCA,EDAc,MAAA,EAAA,CAAA,mtBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,wBAAwB,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAerE,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBrC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oBAAoB,EAAA,OAAA,EACrB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,mBAG9D,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,qBAAqB;wBACrB,wBAAwB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;qBAC7D,EACe,cAAA,EAAA;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,4BAA4B;4BACvC,MAAM,EAAE,CAAC,wBAAwB,CAAC;AACrC,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,u7BAAA,EAAA,MAAA,EAAA,CAAA,mtBAAA,CAAA,EAAA,CAAA;8BAIgB,GAAG,EAAA,CAAA;sBADnB,SAAS;uBAAC,KAAK,CAAA;gBAIC,MAAM,EAAA,CAAA;sBADtB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;gBAIvB,QAAQ,EAAA,CAAA;sBADxB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;gBAM5B,SAAS,EAAA,CAAA;sBAD3B,eAAe;uBAAC,OAAO,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAC,CAAA;gBAwBzD,IAAI,EAAA,CAAA;sBADV,KAAK;;;AEnFG,MAAA,SAAS,GAAG;IACrB,kBAAkB;IAClB,yBAAyB;IACzB,OAAO;;;ACRX;;AAEG;;;;"}
@@ -1,16 +1,25 @@
1
1
  import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
2
2
 
3
- const COMMON_ICONS = {
3
+ const LAYOUT_ICONS = {
4
4
  filter: '@tui.filter',
5
+ grid: '@tui.layout-grid',
5
6
  };
6
- const TUI_COMMON_ICONS = tuiCreateToken(COMMON_ICONS);
7
- function tuiCommonIconsProvider(icons) {
8
- return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);
7
+ const TUI_LAYOUT_ICONS = tuiCreateToken(LAYOUT_ICONS);
8
+ function tuiLayoutIconsProvider(icons) {
9
+ return tuiProvideOptions(TUI_LAYOUT_ICONS, icons, LAYOUT_ICONS);
9
10
  }
11
+ /**
12
+ * @deprecated use {@link TUI_LAYOUT_ICONS} instead
13
+ */
14
+ const TUI_COMMON_ICONS = TUI_LAYOUT_ICONS;
15
+ /**
16
+ * @deprecated use {@link tuiLayoutIconsProvider} instead
17
+ */
18
+ const tuiCommonIconsProvider = tuiLayoutIconsProvider;
10
19
 
11
20
  /**
12
21
  * Generated bundle index. Do not edit.
13
22
  */
14
23
 
15
- export { TUI_COMMON_ICONS, tuiCommonIconsProvider };
24
+ export { TUI_COMMON_ICONS, TUI_LAYOUT_ICONS, tuiCommonIconsProvider, tuiLayoutIconsProvider };
16
25
  //# sourceMappingURL=taiga-ui-layout-tokens.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-tokens.mjs","sources":["../../../projects/layout/tokens/common-icons.ts","../../../projects/layout/tokens/taiga-ui-layout-tokens.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nconst COMMON_ICONS: TuiCommonIcons = {\n filter: '@tui.filter',\n};\n\nexport interface TuiCommonIcons {\n readonly filter: string;\n}\n\nexport const TUI_COMMON_ICONS = tuiCreateToken(COMMON_ICONS);\n\nexport function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider {\n return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAmB;AACjC,IAAA,MAAM,EAAE,aAAa;CACxB,CAAC;MAMW,gBAAgB,GAAG,cAAc,CAAC,YAAY,EAAE;AAEvD,SAAU,sBAAsB,CAAC,KAA8B,EAAA;IACjE,OAAO,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACpE;;ACfA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-layout-tokens.mjs","sources":["../../../projects/layout/tokens/common-icons.ts","../../../projects/layout/tokens/taiga-ui-layout-tokens.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nconst LAYOUT_ICONS: TuiLayoutIcons = {\n filter: '@tui.filter',\n grid: '@tui.layout-grid',\n};\n\nexport interface TuiLayoutIcons {\n readonly filter: string;\n readonly grid: string;\n}\n\nexport const TUI_LAYOUT_ICONS = tuiCreateToken(LAYOUT_ICONS);\n\nexport function tuiLayoutIconsProvider(icons: Partial<TuiLayoutIcons>): Provider {\n return tuiProvideOptions(TUI_LAYOUT_ICONS, icons, LAYOUT_ICONS);\n}\n\n/**\n * @deprecated use {@link TUI_LAYOUT_ICONS} instead\n */\nexport const TUI_COMMON_ICONS = TUI_LAYOUT_ICONS;\n\n/**\n * @deprecated use {@link tuiLayoutIconsProvider} instead\n */\nexport const tuiCommonIconsProvider = tuiLayoutIconsProvider;\n\n/**\n * @deprecated use {@link TuiLayoutIcons} instead\n */\nexport interface TuiCommonIcons extends TuiLayoutIcons {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAmB;AACjC,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,IAAI,EAAE,kBAAkB;CAC3B,CAAC;MAOW,gBAAgB,GAAG,cAAc,CAAC,YAAY,EAAE;AAEvD,SAAU,sBAAsB,CAAC,KAA8B,EAAA;IACjE,OAAO,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACpE,CAAC;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAG,iBAAiB;AAEjD;;AAEG;AACI,MAAM,sBAAsB,GAAG;;AC3BtC;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,99 +1,99 @@
1
1
  {
2
- "name": "@taiga-ui/layout",
3
- "version": "4.4.1",
4
- "description": "A package with Taiga UI layout components",
5
- "keywords": [
6
- "angular",
7
- "component",
8
- "layout"
9
- ],
10
- "homepage": "https://github.com/taiga-family/taiga-ui",
11
- "repository": "https://github.com/taiga-family/taiga-ui",
12
- "license": "Apache-2.0",
13
- "peerDependencies": {
14
- "@angular/common": ">=16.0.0",
15
- "@angular/core": ">=16.0.0",
16
- "@taiga-ui/cdk": "^4.4.1",
17
- "@taiga-ui/core": "^4.4.1",
18
- "@taiga-ui/kit": "^4.4.1",
19
- "@taiga-ui/polymorpheus": "^4.6.4",
20
- "rxjs": ">=7.0.0"
21
- },
22
- "module": "fesm2022/taiga-ui-layout.mjs",
23
- "typings": "index.d.ts",
24
- "exports": {
25
- "./package.json": {
26
- "default": "./package.json"
2
+ "name": "@taiga-ui/layout",
3
+ "version": "4.5.0-canary.10e0b5f",
4
+ "description": "A package with Taiga UI layout components",
5
+ "keywords": [
6
+ "angular",
7
+ "component",
8
+ "layout"
9
+ ],
10
+ "homepage": "https://github.com/taiga-family/taiga-ui",
11
+ "repository": "https://github.com/taiga-family/taiga-ui",
12
+ "license": "Apache-2.0",
13
+ "peerDependencies": {
14
+ "@angular/common": ">=16.0.0",
15
+ "@angular/core": ">=16.0.0",
16
+ "@taiga-ui/cdk": "^4.5.0-canary.10e0b5f",
17
+ "@taiga-ui/core": "^4.5.0-canary.10e0b5f",
18
+ "@taiga-ui/kit": "^4.5.0-canary.10e0b5f",
19
+ "@taiga-ui/polymorpheus": "^4.7.0",
20
+ "rxjs": ">=7.0.0"
27
21
  },
28
- ".": {
29
- "types": "./index.d.ts",
30
- "esm2022": "./esm2022/taiga-ui-layout.mjs",
31
- "esm": "./esm2022/taiga-ui-layout.mjs",
32
- "default": "./fesm2022/taiga-ui-layout.mjs"
22
+ "module": "fesm2022/taiga-ui-layout.mjs",
23
+ "typings": "index.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./index.d.ts",
30
+ "esm2022": "./esm2022/taiga-ui-layout.mjs",
31
+ "esm": "./esm2022/taiga-ui-layout.mjs",
32
+ "default": "./fesm2022/taiga-ui-layout.mjs"
33
+ },
34
+ "./components": {
35
+ "types": "./components/index.d.ts",
36
+ "esm2022": "./esm2022/components/taiga-ui-layout-components.mjs",
37
+ "esm": "./esm2022/components/taiga-ui-layout-components.mjs",
38
+ "default": "./fesm2022/taiga-ui-layout-components.mjs"
39
+ },
40
+ "./tokens": {
41
+ "types": "./tokens/index.d.ts",
42
+ "esm2022": "./esm2022/tokens/taiga-ui-layout-tokens.mjs",
43
+ "esm": "./esm2022/tokens/taiga-ui-layout-tokens.mjs",
44
+ "default": "./fesm2022/taiga-ui-layout-tokens.mjs"
45
+ },
46
+ "./components/app-bar": {
47
+ "types": "./components/app-bar/index.d.ts",
48
+ "esm2022": "./esm2022/components/app-bar/taiga-ui-layout-components-app-bar.mjs",
49
+ "esm": "./esm2022/components/app-bar/taiga-ui-layout-components-app-bar.mjs",
50
+ "default": "./fesm2022/taiga-ui-layout-components-app-bar.mjs"
51
+ },
52
+ "./components/block-details": {
53
+ "types": "./components/block-details/index.d.ts",
54
+ "esm2022": "./esm2022/components/block-details/taiga-ui-layout-components-block-details.mjs",
55
+ "esm": "./esm2022/components/block-details/taiga-ui-layout-components-block-details.mjs",
56
+ "default": "./fesm2022/taiga-ui-layout-components-block-details.mjs"
57
+ },
58
+ "./components/block-status": {
59
+ "types": "./components/block-status/index.d.ts",
60
+ "esm2022": "./esm2022/components/block-status/taiga-ui-layout-components-block-status.mjs",
61
+ "esm": "./esm2022/components/block-status/taiga-ui-layout-components-block-status.mjs",
62
+ "default": "./fesm2022/taiga-ui-layout-components-block-status.mjs"
63
+ },
64
+ "./components/card": {
65
+ "types": "./components/card/index.d.ts",
66
+ "esm2022": "./esm2022/components/card/taiga-ui-layout-components-card.mjs",
67
+ "esm": "./esm2022/components/card/taiga-ui-layout-components-card.mjs",
68
+ "default": "./fesm2022/taiga-ui-layout-components-card.mjs"
69
+ },
70
+ "./components/cell": {
71
+ "types": "./components/cell/index.d.ts",
72
+ "esm2022": "./esm2022/components/cell/taiga-ui-layout-components-cell.mjs",
73
+ "esm": "./esm2022/components/cell/taiga-ui-layout-components-cell.mjs",
74
+ "default": "./fesm2022/taiga-ui-layout-components-cell.mjs"
75
+ },
76
+ "./components/header": {
77
+ "types": "./components/header/index.d.ts",
78
+ "esm2022": "./esm2022/components/header/taiga-ui-layout-components-header.mjs",
79
+ "esm": "./esm2022/components/header/taiga-ui-layout-components-header.mjs",
80
+ "default": "./fesm2022/taiga-ui-layout-components-header.mjs"
81
+ },
82
+ "./components/navigation": {
83
+ "types": "./components/navigation/index.d.ts",
84
+ "esm2022": "./esm2022/components/navigation/taiga-ui-layout-components-navigation.mjs",
85
+ "esm": "./esm2022/components/navigation/taiga-ui-layout-components-navigation.mjs",
86
+ "default": "./fesm2022/taiga-ui-layout-components-navigation.mjs"
87
+ },
88
+ "./components/search": {
89
+ "types": "./components/search/index.d.ts",
90
+ "esm2022": "./esm2022/components/search/taiga-ui-layout-components-search.mjs",
91
+ "esm": "./esm2022/components/search/taiga-ui-layout-components-search.mjs",
92
+ "default": "./fesm2022/taiga-ui-layout-components-search.mjs"
93
+ }
33
94
  },
34
- "./components": {
35
- "types": "./components/index.d.ts",
36
- "esm2022": "./esm2022/components/taiga-ui-layout-components.mjs",
37
- "esm": "./esm2022/components/taiga-ui-layout-components.mjs",
38
- "default": "./fesm2022/taiga-ui-layout-components.mjs"
39
- },
40
- "./tokens": {
41
- "types": "./tokens/index.d.ts",
42
- "esm2022": "./esm2022/tokens/taiga-ui-layout-tokens.mjs",
43
- "esm": "./esm2022/tokens/taiga-ui-layout-tokens.mjs",
44
- "default": "./fesm2022/taiga-ui-layout-tokens.mjs"
45
- },
46
- "./components/app-bar": {
47
- "types": "./components/app-bar/index.d.ts",
48
- "esm2022": "./esm2022/components/app-bar/taiga-ui-layout-components-app-bar.mjs",
49
- "esm": "./esm2022/components/app-bar/taiga-ui-layout-components-app-bar.mjs",
50
- "default": "./fesm2022/taiga-ui-layout-components-app-bar.mjs"
51
- },
52
- "./components/block-details": {
53
- "types": "./components/block-details/index.d.ts",
54
- "esm2022": "./esm2022/components/block-details/taiga-ui-layout-components-block-details.mjs",
55
- "esm": "./esm2022/components/block-details/taiga-ui-layout-components-block-details.mjs",
56
- "default": "./fesm2022/taiga-ui-layout-components-block-details.mjs"
57
- },
58
- "./components/block-status": {
59
- "types": "./components/block-status/index.d.ts",
60
- "esm2022": "./esm2022/components/block-status/taiga-ui-layout-components-block-status.mjs",
61
- "esm": "./esm2022/components/block-status/taiga-ui-layout-components-block-status.mjs",
62
- "default": "./fesm2022/taiga-ui-layout-components-block-status.mjs"
63
- },
64
- "./components/card": {
65
- "types": "./components/card/index.d.ts",
66
- "esm2022": "./esm2022/components/card/taiga-ui-layout-components-card.mjs",
67
- "esm": "./esm2022/components/card/taiga-ui-layout-components-card.mjs",
68
- "default": "./fesm2022/taiga-ui-layout-components-card.mjs"
69
- },
70
- "./components/cell": {
71
- "types": "./components/cell/index.d.ts",
72
- "esm2022": "./esm2022/components/cell/taiga-ui-layout-components-cell.mjs",
73
- "esm": "./esm2022/components/cell/taiga-ui-layout-components-cell.mjs",
74
- "default": "./fesm2022/taiga-ui-layout-components-cell.mjs"
75
- },
76
- "./components/header": {
77
- "types": "./components/header/index.d.ts",
78
- "esm2022": "./esm2022/components/header/taiga-ui-layout-components-header.mjs",
79
- "esm": "./esm2022/components/header/taiga-ui-layout-components-header.mjs",
80
- "default": "./fesm2022/taiga-ui-layout-components-header.mjs"
81
- },
82
- "./components/navigation": {
83
- "types": "./components/navigation/index.d.ts",
84
- "esm2022": "./esm2022/components/navigation/taiga-ui-layout-components-navigation.mjs",
85
- "esm": "./esm2022/components/navigation/taiga-ui-layout-components-navigation.mjs",
86
- "default": "./fesm2022/taiga-ui-layout-components-navigation.mjs"
87
- },
88
- "./components/search": {
89
- "types": "./components/search/index.d.ts",
90
- "esm2022": "./esm2022/components/search/taiga-ui-layout-components-search.mjs",
91
- "esm": "./esm2022/components/search/taiga-ui-layout-components-search.mjs",
92
- "default": "./fesm2022/taiga-ui-layout-components-search.mjs"
95
+ "sideEffects": false,
96
+ "dependencies": {
97
+ "tslib": "^2.7.0"
93
98
  }
94
- },
95
- "sideEffects": false,
96
- "dependencies": {
97
- "tslib": "^2.7.0"
98
- }
99
99
  }
@@ -1,6 +1,20 @@
1
1
  import type { Provider } from '@angular/core';
2
- export interface TuiCommonIcons {
2
+ export interface TuiLayoutIcons {
3
3
  readonly filter: string;
4
+ readonly grid: string;
5
+ }
6
+ export declare const TUI_LAYOUT_ICONS: import("@angular/core").InjectionToken<TuiLayoutIcons>;
7
+ export declare function tuiLayoutIconsProvider(icons: Partial<TuiLayoutIcons>): Provider;
8
+ /**
9
+ * @deprecated use {@link TUI_LAYOUT_ICONS} instead
10
+ */
11
+ export declare const TUI_COMMON_ICONS: import("@angular/core").InjectionToken<TuiLayoutIcons>;
12
+ /**
13
+ * @deprecated use {@link tuiLayoutIconsProvider} instead
14
+ */
15
+ export declare const tuiCommonIconsProvider: typeof tuiLayoutIconsProvider;
16
+ /**
17
+ * @deprecated use {@link TuiLayoutIcons} instead
18
+ */
19
+ export interface TuiCommonIcons extends TuiLayoutIcons {
4
20
  }
5
- export declare const TUI_COMMON_ICONS: import("@angular/core").InjectionToken<TuiCommonIcons>;
6
- export declare function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider;