@taiga-ui/experimental 4.19.0-canary.f57082a → 4.20.0

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.
@@ -0,0 +1,16 @@
1
+ import type { QueryList } from '@angular/core';
2
+ import type { TuiSizeL, TuiSizeS } from '@taiga-ui/core/types';
3
+ import { TuiExpand } from '@taiga-ui/experimental/components/expand';
4
+ import { TuiAccordionDirective } from './accordion.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@taiga-ui/core/directives/group";
7
+ export declare class TuiAccordionComponent {
8
+ readonly expands: QueryList<TuiExpand>;
9
+ readonly directives: QueryList<TuiAccordionDirective>;
10
+ closeOthers: boolean;
11
+ readonly size: import("@angular/core").WritableSignal<"m" | "l" | "s">;
12
+ set sizeSetter(size: TuiSizeL | TuiSizeS);
13
+ toggle(directive: TuiAccordionDirective, value: boolean): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiAccordionComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiAccordionComponent, "tui-accordion", never, { "closeOthers": { "alias": "closeOthers"; "required": false; }; "sizeSetter": { "alias": "size"; "required": false; }; }, {}, ["expands", "directives"], ["*"], true, [{ directive: typeof i1.TuiGroup; inputs: {}; outputs: {}; }]>;
16
+ }
@@ -0,0 +1,5 @@
1
+ import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
+ import { TuiExpand } from '@taiga-ui/experimental/components/expand';
3
+ import { TuiAccordionComponent } from './accordion.component';
4
+ import { TuiAccordionDirective } from './accordion.directive';
5
+ export declare const TuiAccordion: readonly [typeof TuiAccordionComponent, typeof TuiAccordionDirective, typeof TuiExpand, typeof TuiItem];
@@ -0,0 +1,16 @@
1
+ import type { OnChanges } from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@taiga-ui/core/components/button";
5
+ import * as i2 from "@taiga-ui/kit/directives/chevron";
6
+ export declare class TuiAccordionDirective implements OnChanges {
7
+ private readonly accordion;
8
+ protected readonly size: import("@angular/core").WritableSignal<"m" | "l" | "s">;
9
+ tuiAccordion: boolean | string;
10
+ readonly tuiAccordionChange: EventEmitter<boolean>;
11
+ readonly open: import("@angular/core").WritableSignal<boolean>;
12
+ ngOnChanges(): void;
13
+ toggle(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiAccordionDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiAccordionDirective, "button[tuiAccordion]", never, { "tuiAccordion": { "alias": "tuiAccordion"; "required": false; }; }, { "tuiAccordionChange": "tuiAccordionChange"; }, never, never, true, [{ directive: typeof i1.TuiButton; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiChevron; inputs: {}; outputs: {}; }]>;
16
+ }
@@ -0,0 +1,3 @@
1
+ export * from './accordion';
2
+ export * from './accordion.component';
3
+ export * from './accordion.directive';
@@ -2,8 +2,9 @@ import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TuiExpand {
4
4
  protected content?: TemplateRef<any>;
5
- protected animating: boolean;
6
- expanded: boolean;
5
+ protected readonly signal: import("@angular/core").WritableSignal<boolean>;
6
+ protected readonly animating: import("@angular/core").WritableSignal<boolean>;
7
+ set expanded(expanded: boolean);
7
8
  protected onTransitionEnd({ propertyName }: TransitionEvent): void;
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiExpand, never>;
9
10
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiExpand, "tui-expand", never, { "expanded": { "alias": "expanded"; "required": false; }; }, {}, ["content"], ["*"], true, never>;
@@ -1,3 +1,4 @@
1
+ export * from '@taiga-ui/experimental/components/accordion';
1
2
  export * from '@taiga-ui/experimental/components/expand';
2
3
  export * from '@taiga-ui/experimental/components/hint';
3
4
  export * from '@taiga-ui/experimental/components/input-phone-international';
@@ -0,0 +1,64 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, Input, signal, ViewEncapsulation, } from '@angular/core';
2
+ import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
3
+ import { TuiGroup, tuiGroupOptionsProvider } from '@taiga-ui/core/directives/group';
4
+ import { TuiExpand } from '@taiga-ui/experimental/components/expand';
5
+ import { TuiAccordionDirective } from './accordion.directive';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@taiga-ui/core/directives/group";
8
+ class TuiAccordionComponent {
9
+ constructor() {
10
+ this.expands = EMPTY_QUERY;
11
+ this.directives = EMPTY_QUERY;
12
+ this.closeOthers = true;
13
+ this.size = signal('l');
14
+ }
15
+ set sizeSetter(size) {
16
+ this.size.set(size);
17
+ }
18
+ toggle(directive, value) {
19
+ if (this.closeOthers && value) {
20
+ this.expands.forEach((expand) => {
21
+ expand.expanded = false;
22
+ });
23
+ this.directives.forEach((dir) => {
24
+ if (dir === directive) {
25
+ return;
26
+ }
27
+ dir.open.set(false);
28
+ dir.tuiAccordionChange.emit(false);
29
+ });
30
+ }
31
+ this.expands.get(this.directives.toArray().indexOf(directive)).expanded = value;
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionComponent, isStandalone: true, selector: "tui-accordion", inputs: { closeOthers: "closeOthers", sizeSetter: ["size", "sizeSetter"] }, host: { properties: { "attr.data-size": "size()" } }, providers: [
35
+ tuiGroupOptionsProvider({
36
+ orientation: 'vertical',
37
+ collapsed: true,
38
+ }),
39
+ ], queries: [{ propertyName: "expands", predicate: TuiExpand, static: true }, { propertyName: "directives", predicate: TuiAccordionDirective, static: true }], hostDirectives: [{ directive: i1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;border-radius:var(--t-group-radius);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-end-start-radius:inherit;border-end-end-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-start-start-radius:inherit!important;border-start-end-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;font:var(--tui-font-text-m);transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-end-start-radius:inherit!important;border-end-end-radius:inherit!important}tui-accordion[data-size=m]>tui-expand{padding:1rem;font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem;font:var(--tui-font-text-s)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ }
41
+ export { TuiAccordionComponent };
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ standalone: true, selector: 'tui-accordion', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
45
+ tuiGroupOptionsProvider({
46
+ orientation: 'vertical',
47
+ collapsed: true,
48
+ }),
49
+ ], hostDirectives: [TuiGroup], host: {
50
+ '[attr.data-size]': 'size()',
51
+ }, styles: ["tui-accordion{inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;border-radius:var(--t-group-radius);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-end-start-radius:inherit;border-end-end-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-start-start-radius:inherit!important;border-start-end-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;font:var(--tui-font-text-m);transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-end-start-radius:inherit!important;border-end-end-radius:inherit!important}tui-accordion[data-size=m]>tui-expand{padding:1rem;font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem;font:var(--tui-font-text-s)}\n"] }]
52
+ }], propDecorators: { expands: [{
53
+ type: ContentChildren,
54
+ args: [TuiExpand, { static: true }]
55
+ }], directives: [{
56
+ type: ContentChildren,
57
+ args: [TuiAccordionDirective, { static: true }]
58
+ }], closeOthers: [{
59
+ type: Input
60
+ }], sizeSetter: [{
61
+ type: Input,
62
+ args: ['size']
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFFBQVEsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRWxGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRTVELE1Ba0JhLHFCQUFxQjtJQWxCbEM7UUFvQm9CLFlBQU8sR0FBeUIsV0FBVyxDQUFDO1FBRzVDLGVBQVUsR0FBcUMsV0FBVyxDQUFDO1FBR3BFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRVYsU0FBSSxHQUFHLE1BQU0sQ0FBc0IsR0FBRyxDQUFDLENBQUM7S0F5QjNEO0lBdkJHLElBQ1csVUFBVSxDQUFDLElBQXlCO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBZ0MsRUFBRSxLQUFjO1FBQzFELElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDNUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7b0JBQ25CLE9BQU87aUJBQ1Y7Z0JBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFFLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyRixDQUFDOytHQWxDUSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw4TEFYbkI7WUFDUCx1QkFBdUIsQ0FBQztnQkFDcEIsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJO2FBQ2xCLENBQUM7U0FDTCxrREFPZ0IsU0FBUywyREFHVCxxQkFBcUIseUZBbkI1QixnQkFBZ0I7O1NBZWpCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQWxCakMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZUFBZSxZQUNmLGdCQUFnQixpQkFFWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLHVCQUF1QixDQUFDOzRCQUNwQixXQUFXLEVBQUUsVUFBVTs0QkFDdkIsU0FBUyxFQUFFLElBQUk7eUJBQ2xCLENBQUM7cUJBQ0wsa0JBQ2UsQ0FBQyxRQUFRLENBQUMsUUFDcEI7d0JBQ0Ysa0JBQWtCLEVBQUUsUUFBUTtxQkFDL0I7OEJBSWUsT0FBTztzQkFEdEIsZUFBZTt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFRO2dCQUlqQyxVQUFVO3NCQUR6QixlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBUTtnQkFJdEQsV0FBVztzQkFEakIsS0FBSztnQkFNSyxVQUFVO3NCQURwQixLQUFLO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBzaWduYWwsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlHcm91cCwgdHVpR3JvdXBPcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZ3JvdXAnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtUdWlFeHBhbmR9IGZyb20gJ0B0YWlnYS11aS9leHBlcmltZW50YWwvY29tcG9uZW50cy9leHBhbmQnO1xuXG5pbXBvcnQge1R1aUFjY29yZGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9hY2NvcmRpb24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1hY2NvcmRpb24nLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICAgIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpR3JvdXBPcHRpb25zUHJvdmlkZXIoe1xuICAgICAgICAgICAgb3JpZW50YXRpb246ICd2ZXJ0aWNhbCcsXG4gICAgICAgICAgICBjb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlHcm91cF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUFjY29yZGlvbkNvbXBvbmVudCB7XG4gICAgQENvbnRlbnRDaGlsZHJlbihUdWlFeHBhbmQsIHtzdGF0aWM6IHRydWV9IGFzIGFueSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kczogUXVlcnlMaXN0PFR1aUV4cGFuZD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpQWNjb3JkaW9uRGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSBhcyBhbnkpXG4gICAgcHVibGljIHJlYWRvbmx5IGRpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxUdWlBY2NvcmRpb25EaXJlY3RpdmU+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjbG9zZU90aGVycyA9IHRydWU7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9IHNpZ25hbDxUdWlTaXplTCB8IFR1aVNpemVTPignbCcpO1xuXG4gICAgQElucHV0KCdzaXplJylcbiAgICBwdWJsaWMgc2V0IHNpemVTZXR0ZXIoc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUykge1xuICAgICAgICB0aGlzLnNpemUuc2V0KHNpemUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoZGlyZWN0aXZlOiBUdWlBY2NvcmRpb25EaXJlY3RpdmUsIHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT3RoZXJzICYmIHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZHMuZm9yRWFjaCgoZXhwYW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgZXhwYW5kLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVzLmZvckVhY2goKGRpcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXIgPT09IGRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGlyLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBkaXIudHVpQWNjb3JkaW9uQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cGFuZHMuZ2V0KHRoaXMuZGlyZWN0aXZlcy50b0FycmF5KCkuaW5kZXhPZihkaXJlY3RpdmUpKSEuZXhwYW5kZWQgPSB2YWx1ZTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Directive, EventEmitter, inject, Input, Output, signal } from '@angular/core';
2
+ import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils';
3
+ import { TuiButton, tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
4
+ import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
5
+ import { TuiAccordionComponent } from './accordion.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@taiga-ui/core/components/button";
8
+ import * as i2 from "@taiga-ui/kit/directives/chevron";
9
+ class TuiAccordionDirective {
10
+ constructor() {
11
+ this.accordion = inject(TuiAccordionComponent);
12
+ this.size = tuiDirectiveBinding(TuiButton, 'size', this.accordion.size);
13
+ this.tuiAccordion = '';
14
+ this.tuiAccordionChange = new EventEmitter();
15
+ this.open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));
16
+ }
17
+ ngOnChanges() {
18
+ this.open.set(!!this.tuiAccordion);
19
+ this.accordion.toggle(this, this.open());
20
+ }
21
+ toggle() {
22
+ this.open.set(!this.open());
23
+ this.tuiAccordionChange.emit(this.open());
24
+ this.accordion.toggle(this, this.open());
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionDirective, isStandalone: true, selector: "button[tuiAccordion]", inputs: { tuiAccordion: "tuiAccordion" }, outputs: { tuiAccordionChange: "tuiAccordionChange" }, host: { attributes: { "tuiButton": "", "tuiAccordion": "", "type": "button" }, listeners: { "click": "toggle()" }, properties: { "class._open": "open()" } }, providers: [tuiButtonOptionsProvider({ appearance: 'outline-grayscale' })], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiButton }, { directive: i2.TuiChevron }], ngImport: i0 }); }
28
+ }
29
+ export { TuiAccordionDirective };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ standalone: true,
34
+ selector: 'button[tuiAccordion]',
35
+ providers: [tuiButtonOptionsProvider({ appearance: 'outline-grayscale' })],
36
+ hostDirectives: [TuiButton, TuiChevron],
37
+ host: {
38
+ tuiButton: '',
39
+ tuiAccordion: '',
40
+ type: 'button',
41
+ '[class._open]': 'open()',
42
+ '(click)': 'toggle()',
43
+ },
44
+ }]
45
+ }], propDecorators: { tuiAccordion: [{
46
+ type: Input
47
+ }], tuiAccordionChange: [{
48
+ type: Output
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRTVELE1BYWEscUJBQXFCO0lBYmxDO1FBY3FCLGNBQVMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4QyxTQUFJLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRy9FLGlCQUFZLEdBQXFCLEVBQUUsQ0FBQztRQUczQix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWpELFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBWXZGO0lBVlUsV0FBVztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQXRCUSxxQkFBcUI7bUdBQXJCLHFCQUFxQixrVUFWbkIsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBQyxDQUFDLENBQUM7O1NBVS9ELHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQWJqQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBQyxDQUFDLENBQUM7b0JBQ3hFLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7b0JBQ3ZDLElBQUksRUFBRTt3QkFDRixTQUFTLEVBQUUsRUFBRTt3QkFDYixZQUFZLEVBQUUsRUFBRTt3QkFDaEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsZUFBZSxFQUFFLFFBQVE7d0JBQ3pCLFNBQVMsRUFBRSxVQUFVO3FCQUN4QjtpQkFDSjs4QkFPVSxZQUFZO3NCQURsQixLQUFLO2dCQUlVLGtCQUFrQjtzQkFEakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEaXJlY3RpdmVCaW5kaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcbmltcG9ydCB7VHVpQnV0dG9uLCB0dWlCdXR0b25PcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7VHVpQ2hldnJvbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9kaXJlY3RpdmVzL2NoZXZyb24nO1xuXG5pbXBvcnQge1R1aUFjY29yZGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2J1dHRvblt0dWlBY2NvcmRpb25dJyxcbiAgICBwcm92aWRlcnM6IFt0dWlCdXR0b25PcHRpb25zUHJvdmlkZXIoe2FwcGVhcmFuY2U6ICdvdXRsaW5lLWdyYXlzY2FsZSd9KV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlCdXR0b24sIFR1aUNoZXZyb25dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpQnV0dG9uOiAnJyxcbiAgICAgICAgdHVpQWNjb3JkaW9uOiAnJyxcbiAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICdbY2xhc3MuX29wZW5dJzogJ29wZW4oKScsXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBY2NvcmRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjb3JkaW9uID0gaW5qZWN0KFR1aUFjY29yZGlvbkNvbXBvbmVudCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2l6ZSA9IHR1aURpcmVjdGl2ZUJpbmRpbmcoVHVpQnV0dG9uLCAnc2l6ZScsIHRoaXMuYWNjb3JkaW9uLnNpemUpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpQWNjb3JkaW9uOiBib29sZWFuIHwgc3RyaW5nID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHVpQWNjb3JkaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG9wZW4gPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFR1aUNoZXZyb24sICd0dWlDaGV2cm9uJywgc2lnbmFsKGZhbHNlKSk7XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoISF0aGlzLnR1aUFjY29yZGlvbik7XG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLnRvZ2dsZSh0aGlzLCB0aGlzLm9wZW4oKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnNldCghdGhpcy5vcGVuKCkpO1xuICAgICAgICB0aGlzLnR1aUFjY29yZGlvbkNoYW5nZS5lbWl0KHRoaXMub3BlbigpKTtcbiAgICAgICAgdGhpcy5hY2NvcmRpb24udG9nZ2xlKHRoaXMsIHRoaXMub3BlbigpKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
+ import { TuiExpand } from '@taiga-ui/experimental/components/expand';
3
+ import { TuiAccordionComponent } from './accordion.component';
4
+ import { TuiAccordionDirective } from './accordion.directive';
5
+ export const TuiAccordion = [
6
+ TuiAccordionComponent,
7
+ TuiAccordionDirective,
8
+ TuiExpand,
9
+ TuiItem,
10
+ ];
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJpbWVudGFsL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLFNBQVM7SUFDVCxPQUFPO0NBQ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHVpSXRlbX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2l0ZW0nO1xuaW1wb3J0IHtUdWlFeHBhbmR9IGZyb20gJ0B0YWlnYS11aS9leHBlcmltZW50YWwvY29tcG9uZW50cy9leHBhbmQnO1xuXG5pbXBvcnQge1R1aUFjY29yZGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7VHVpQWNjb3JkaW9uRGlyZWN0aXZlfSBmcm9tICcuL2FjY29yZGlvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgVHVpQWNjb3JkaW9uID0gW1xuICAgIFR1aUFjY29yZGlvbkNvbXBvbmVudCxcbiAgICBUdWlBY2NvcmRpb25EaXJlY3RpdmUsXG4gICAgVHVpRXhwYW5kLFxuICAgIFR1aUl0ZW0sXG5dIGFzIGNvbnN0O1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './accordion';
2
+ export * from './accordion.component';
3
+ export * from './accordion.directive';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcmltZW50YWwvY29tcG9uZW50cy9hY2NvcmRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3JkaW9uLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktZXhwZXJpbWVudGFsLWNvbXBvbmVudHMtYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJpbWVudGFsL2NvbXBvbmVudHMvYWNjb3JkaW9uL3RhaWdhLXVpLWV4cGVyaW1lbnRhbC1jb21wb25lbnRzLWFjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,27 +1,30 @@
1
1
  import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, } from '@angular/core';
3
- import { TuiItem } from '@taiga-ui/cdk/directives';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, Input, signal, TemplateRef, } from '@angular/core';
3
+ import { TuiItem } from '@taiga-ui/cdk/directives/item';
4
4
  import * as i0 from "@angular/core";
5
5
  class TuiExpand {
6
6
  constructor() {
7
- this.animating = false;
8
- this.expanded = false;
7
+ this.signal = signal(false);
8
+ this.animating = signal(false);
9
+ }
10
+ set expanded(expanded) {
11
+ this.signal.set(expanded);
9
12
  }
10
13
  onTransitionEnd({ propertyName }) {
11
14
  if (propertyName === 'grid-template-rows') {
12
- this.animating = this.expanded;
15
+ this.animating.set(this.signal());
13
16
  }
14
17
  }
15
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiExpand, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiExpand, isStandalone: true, selector: "tui-expand", inputs: { expanded: "expanded" }, host: { listeners: { "transitionend.self": "onTransitionEnd($event)" }, properties: { "class._expanded": "expanded" } }, queries: [{ propertyName: "content", first: true, predicate: TuiItem, descendants: true, read: TemplateRef }], ngImport: i0, template: `
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiExpand, isStandalone: true, selector: "tui-expand", inputs: { expanded: "expanded" }, host: { listeners: { "transitionend.self": "onTransitionEnd($event)" }, properties: { "class._expanded": "signal()" } }, queries: [{ propertyName: "content", first: true, predicate: TuiItem, descendants: true, read: TemplateRef }], ngImport: i0, template: `
17
20
  <div class="t-wrapper">
18
21
  <ng-container
19
- *ngIf="expanded || animating"
22
+ *ngIf="signal() || animating()"
20
23
  [ngTemplateOutlet]="content || null"
21
24
  />
22
25
  <ng-content />
23
26
  </div>
24
- `, isInline: true, styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ `, isInline: true, styles: [":host{transition-property:grid-template-rows,padding;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host:not(._expanded){padding-block:0}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
28
  }
26
29
  export { TuiExpand };
27
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiExpand, decorators: [{
@@ -29,19 +32,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
29
32
  args: [{ standalone: true, selector: 'tui-expand', imports: [NgIf, NgTemplateOutlet], template: `
30
33
  <div class="t-wrapper">
31
34
  <ng-container
32
- *ngIf="expanded || animating"
35
+ *ngIf="signal() || animating()"
33
36
  [ngTemplateOutlet]="content || null"
34
37
  />
35
38
  <ng-content />
36
39
  </div>
37
40
  `, changeDetection: ChangeDetectionStrategy.OnPush, host: {
38
- '[class._expanded]': 'expanded',
41
+ '[class._expanded]': 'signal()',
39
42
  '(transitionend.self)': 'onTransitionEnd($event)',
40
- }, styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"] }]
43
+ }, styles: [":host{transition-property:grid-template-rows,padding;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host:not(._expanded){padding-block:0}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"] }]
41
44
  }], propDecorators: { content: [{
42
45
  type: ContentChild,
43
46
  args: [TuiItem, { read: TemplateRef }]
44
47
  }], expanded: [{
45
48
  type: Input
46
49
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2V4cGFuZC9leHBhbmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBRWpELE1Bb0JhLFNBQVM7SUFwQnRCO1FBd0JjLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHckIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQU8zQjtJQUxhLGVBQWUsQ0FBQyxFQUFDLFlBQVksRUFBa0I7UUFDckQsSUFBSSxZQUFZLEtBQUssb0JBQW9CLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzsrR0FiUSxTQUFTO21HQUFULFNBQVMsc1FBQ0osT0FBTywyQkFBUyxXQUFXLDZCQWpCL0I7Ozs7Ozs7O0tBUVQsNGhCQVRTLElBQUksNkZBQUUsZ0JBQWdCOztTQWlCdkIsU0FBUzs0RkFBVCxTQUFTO2tCQXBCckIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFlBQ3ZCOzs7Ozs7OztLQVFULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLHlCQUF5QjtxQkFDcEQ7OEJBSVMsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQU1uQyxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlJdGVtfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWV4cGFuZCcsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZGVkIHx8IGFuaW1hdGluZ1wiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCB8fCBudWxsXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL2V4cGFuZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9leHBhbmRlZF0nOiAnZXhwYW5kZWQnLFxuICAgICAgICAnKHRyYW5zaXRpb25lbmQuc2VsZiknOiAnb25UcmFuc2l0aW9uRW5kKCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUV4cGFuZCB7XG4gICAgQENvbnRlbnRDaGlsZChUdWlJdGVtLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHByb3RlY3RlZCBjb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByb3RlY3RlZCBhbmltYXRpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb25UcmFuc2l0aW9uRW5kKHtwcm9wZXJ0eU5hbWV9OiBUcmFuc2l0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ2dyaWQtdGVtcGxhdGUtcm93cycpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW5nID0gdGhpcy5leHBhbmRlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2V4cGFuZC9leHBhbmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQUV0RCxNQW9CYSxTQUFTO0lBcEJ0QjtRQXdCdUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBWWhEO0lBVkcsSUFDVyxRQUFRLENBQUMsUUFBaUI7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxFQUFDLFlBQVksRUFBa0I7UUFDckQsSUFBSSxZQUFZLEtBQUssb0JBQW9CLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDOytHQWhCUSxTQUFTO21HQUFULFNBQVMsc1FBQ0osT0FBTywyQkFBUyxXQUFXLDZCQWpCL0I7Ozs7Ozs7O0tBUVQsMGtCQVRTLElBQUksNkZBQUUsZ0JBQWdCOztTQWlCdkIsU0FBUzs0RkFBVCxTQUFTO2tCQXBCckIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFlBQ3ZCOzs7Ozs7OztLQVFULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLHlCQUF5QjtxQkFDcEQ7OEJBSVMsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQU8vQixRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIElucHV0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUl0ZW19IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1leHBhbmQnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwidC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaWduYWwoKSB8fCBhbmltYXRpbmcoKVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCB8fCBudWxsXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL2V4cGFuZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9leHBhbmRlZF0nOiAnc2lnbmFsKCknLFxuICAgICAgICAnKHRyYW5zaXRpb25lbmQuc2VsZiknOiAnb25UcmFuc2l0aW9uRW5kKCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUV4cGFuZCB7XG4gICAgQENvbnRlbnRDaGlsZChUdWlJdGVtLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHByb3RlY3RlZCBjb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzaWduYWwgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhbmltYXRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGV4cGFuZGVkKGV4cGFuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2lnbmFsLnNldChleHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVHJhbnNpdGlvbkVuZCh7cHJvcGVydHlOYW1lfTogVHJhbnNpdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdncmlkLXRlbXBsYXRlLXJvd3MnKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGluZy5zZXQodGhpcy5zaWduYWwoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
+ export * from '@taiga-ui/experimental/components/accordion';
1
2
  export * from '@taiga-ui/experimental/components/expand';
2
3
  export * from '@taiga-ui/experimental/components/hint';
3
4
  export * from '@taiga-ui/experimental/components/input-phone-international';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcmltZW50YWwvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2REFBNkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9leHBlcmltZW50YWwvY29tcG9uZW50cy9leHBhbmQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2hpbnQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2lucHV0LXBob25lLWludGVybmF0aW9uYWwnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcmltZW50YWwvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZEQUE2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2FjY29yZGlvbic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvZXhwZXJpbWVudGFsL2NvbXBvbmVudHMvZXhwYW5kJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9leHBlcmltZW50YWwvY29tcG9uZW50cy9oaW50JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9leHBlcmltZW50YWwvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsJztcbiJdfQ==
@@ -0,0 +1,123 @@
1
+ import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
+ import { TuiExpand } from '@taiga-ui/experimental/components/expand';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, EventEmitter, signal, Directive, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren } from '@angular/core';
5
+ import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
6
+ import * as i1$1 from '@taiga-ui/core/directives/group';
7
+ import { tuiGroupOptionsProvider, TuiGroup } from '@taiga-ui/core/directives/group';
8
+ import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils';
9
+ import * as i1 from '@taiga-ui/core/components/button';
10
+ import { TuiButton, tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
11
+ import * as i2 from '@taiga-ui/kit/directives/chevron';
12
+ import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
13
+
14
+ class TuiAccordionDirective {
15
+ constructor() {
16
+ this.accordion = inject(TuiAccordionComponent);
17
+ this.size = tuiDirectiveBinding(TuiButton, 'size', this.accordion.size);
18
+ this.tuiAccordion = '';
19
+ this.tuiAccordionChange = new EventEmitter();
20
+ this.open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));
21
+ }
22
+ ngOnChanges() {
23
+ this.open.set(!!this.tuiAccordion);
24
+ this.accordion.toggle(this, this.open());
25
+ }
26
+ toggle() {
27
+ this.open.set(!this.open());
28
+ this.tuiAccordionChange.emit(this.open());
29
+ this.accordion.toggle(this, this.open());
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
32
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionDirective, isStandalone: true, selector: "button[tuiAccordion]", inputs: { tuiAccordion: "tuiAccordion" }, outputs: { tuiAccordionChange: "tuiAccordionChange" }, host: { attributes: { "tuiButton": "", "tuiAccordion": "", "type": "button" }, listeners: { "click": "toggle()" }, properties: { "class._open": "open()" } }, providers: [tuiButtonOptionsProvider({ appearance: 'outline-grayscale' })], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiButton }, { directive: i2.TuiChevron }], ngImport: i0 }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, decorators: [{
35
+ type: Directive,
36
+ args: [{
37
+ standalone: true,
38
+ selector: 'button[tuiAccordion]',
39
+ providers: [tuiButtonOptionsProvider({ appearance: 'outline-grayscale' })],
40
+ hostDirectives: [TuiButton, TuiChevron],
41
+ host: {
42
+ tuiButton: '',
43
+ tuiAccordion: '',
44
+ type: 'button',
45
+ '[class._open]': 'open()',
46
+ '(click)': 'toggle()',
47
+ },
48
+ }]
49
+ }], propDecorators: { tuiAccordion: [{
50
+ type: Input
51
+ }], tuiAccordionChange: [{
52
+ type: Output
53
+ }] } });
54
+
55
+ class TuiAccordionComponent {
56
+ constructor() {
57
+ this.expands = EMPTY_QUERY;
58
+ this.directives = EMPTY_QUERY;
59
+ this.closeOthers = true;
60
+ this.size = signal('l');
61
+ }
62
+ set sizeSetter(size) {
63
+ this.size.set(size);
64
+ }
65
+ toggle(directive, value) {
66
+ if (this.closeOthers && value) {
67
+ this.expands.forEach((expand) => {
68
+ expand.expanded = false;
69
+ });
70
+ this.directives.forEach((dir) => {
71
+ if (dir === directive) {
72
+ return;
73
+ }
74
+ dir.open.set(false);
75
+ dir.tuiAccordionChange.emit(false);
76
+ });
77
+ }
78
+ this.expands.get(this.directives.toArray().indexOf(directive)).expanded = value;
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionComponent, isStandalone: true, selector: "tui-accordion", inputs: { closeOthers: "closeOthers", sizeSetter: ["size", "sizeSetter"] }, host: { properties: { "attr.data-size": "size()" } }, providers: [
82
+ tuiGroupOptionsProvider({
83
+ orientation: 'vertical',
84
+ collapsed: true,
85
+ }),
86
+ ], queries: [{ propertyName: "expands", predicate: TuiExpand, static: true }, { propertyName: "directives", predicate: TuiAccordionDirective, static: true }], hostDirectives: [{ directive: i1$1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;border-radius:var(--t-group-radius);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-end-start-radius:inherit;border-end-end-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-start-start-radius:inherit!important;border-start-end-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;font:var(--tui-font-text-m);transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-end-start-radius:inherit!important;border-end-end-radius:inherit!important}tui-accordion[data-size=m]>tui-expand{padding:1rem;font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem;font:var(--tui-font-text-s)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ standalone: true, selector: 'tui-accordion', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
91
+ tuiGroupOptionsProvider({
92
+ orientation: 'vertical',
93
+ collapsed: true,
94
+ }),
95
+ ], hostDirectives: [TuiGroup], host: {
96
+ '[attr.data-size]': 'size()',
97
+ }, styles: ["tui-accordion{inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;border-radius:var(--t-group-radius);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-end-start-radius:inherit;border-end-end-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-start-start-radius:inherit!important;border-start-end-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;font:var(--tui-font-text-m);transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-end-start-radius:inherit!important;border-end-end-radius:inherit!important}tui-accordion[data-size=m]>tui-expand{padding:1rem;font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem;font:var(--tui-font-text-s)}\n"] }]
98
+ }], propDecorators: { expands: [{
99
+ type: ContentChildren,
100
+ args: [TuiExpand, { static: true }]
101
+ }], directives: [{
102
+ type: ContentChildren,
103
+ args: [TuiAccordionDirective, { static: true }]
104
+ }], closeOthers: [{
105
+ type: Input
106
+ }], sizeSetter: [{
107
+ type: Input,
108
+ args: ['size']
109
+ }] } });
110
+
111
+ const TuiAccordion = [
112
+ TuiAccordionComponent,
113
+ TuiAccordionDirective,
114
+ TuiExpand,
115
+ TuiItem,
116
+ ];
117
+
118
+ /**
119
+ * Generated bundle index. Do not edit.
120
+ */
121
+
122
+ export { TuiAccordion, TuiAccordionComponent, TuiAccordionDirective };
123
+ //# sourceMappingURL=taiga-ui-experimental-components-accordion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-experimental-components-accordion.mjs","sources":["../../../projects/experimental/components/accordion/accordion.directive.ts","../../../projects/experimental/components/accordion/accordion.component.ts","../../../projects/experimental/components/accordion/accordion.ts","../../../projects/experimental/components/accordion/taiga-ui-experimental-components-accordion.ts"],"sourcesContent":["import type {OnChanges} from '@angular/core';\nimport {Directive, EventEmitter, inject, Input, Output, signal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiAccordionComponent} from './accordion.component';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiAccordion]',\n providers: [tuiButtonOptionsProvider({appearance: 'outline-grayscale'})],\n hostDirectives: [TuiButton, TuiChevron],\n host: {\n tuiButton: '',\n tuiAccordion: '',\n type: 'button',\n '[class._open]': 'open()',\n '(click)': 'toggle()',\n },\n})\nexport class TuiAccordionDirective implements OnChanges {\n private readonly accordion = inject(TuiAccordionComponent);\n\n protected readonly size = tuiDirectiveBinding(TuiButton, 'size', this.accordion.size);\n\n @Input()\n public tuiAccordion: boolean | string = '';\n\n @Output()\n public readonly tuiAccordionChange = new EventEmitter<boolean>();\n\n public readonly open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));\n\n public ngOnChanges(): void {\n this.open.set(!!this.tuiAccordion);\n this.accordion.toggle(this, this.open());\n }\n\n public toggle(): void {\n this.open.set(!this.open());\n this.tuiAccordionChange.emit(this.open());\n this.accordion.toggle(this, this.open());\n }\n}\n","import type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiGroup, tuiGroupOptionsProvider} from '@taiga-ui/core/directives/group';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\n\nimport {TuiAccordionDirective} from './accordion.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-accordion',\n template: '<ng-content />',\n styleUrls: ['./accordion.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiGroupOptionsProvider({\n orientation: 'vertical',\n collapsed: true,\n }),\n ],\n hostDirectives: [TuiGroup],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiAccordionComponent {\n @ContentChildren(TuiExpand, {static: true} as any)\n public readonly expands: QueryList<TuiExpand> = EMPTY_QUERY;\n\n @ContentChildren(TuiAccordionDirective, {static: true} as any)\n public readonly directives: QueryList<TuiAccordionDirective> = EMPTY_QUERY;\n\n @Input()\n public closeOthers = true;\n\n public readonly size = signal<TuiSizeL | TuiSizeS>('l');\n\n @Input('size')\n public set sizeSetter(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n public toggle(directive: TuiAccordionDirective, value: boolean): void {\n if (this.closeOthers && value) {\n this.expands.forEach((expand) => {\n expand.expanded = false;\n });\n\n this.directives.forEach((dir) => {\n if (dir === directive) {\n return;\n }\n\n dir.open.set(false);\n dir.tuiAccordionChange.emit(false);\n });\n }\n\n this.expands.get(this.directives.toArray().indexOf(directive))!.expanded = value;\n }\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\n\nimport {TuiAccordionComponent} from './accordion.component';\nimport {TuiAccordionDirective} from './accordion.directive';\n\nexport const TuiAccordion = [\n TuiAccordionComponent,\n TuiAccordionDirective,\n TuiExpand,\n TuiItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;AAQA,MAaa,qBAAqB,CAAA;AAblC,IAAA,WAAA,GAAA;AAcqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAExC,QAAA,IAAA,CAAA,IAAI,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAG/E,IAAY,CAAA,YAAA,GAAqB,EAAE,CAAC;AAG3B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;AAEjD,QAAA,IAAA,CAAA,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAYvF,KAAA;IAVU,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5C;IAEM,MAAM,GAAA;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5C;+GAtBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EAVnB,CAAC,wBAAwB,CAAC,EAAC,UAAU,EAAE,mBAAmB,EAAC,CAAC,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAU/D,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAC,UAAU,EAAE,mBAAmB,EAAC,CAAC,CAAC;AACxE,oBAAA,cAAc,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;AACvC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,YAAY,EAAE,EAAE;AAChB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,eAAe,EAAE,QAAQ;AACzB,wBAAA,SAAS,EAAE,UAAU;AACxB,qBAAA;AACJ,iBAAA,CAAA;8BAOU,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIU,kBAAkB,EAAA,CAAA;sBADjC,MAAM;;;ACbX,MAkBa,qBAAqB,CAAA;AAlBlC,IAAA,WAAA,GAAA;QAoBoB,IAAO,CAAA,OAAA,GAAyB,WAAW,CAAC;QAG5C,IAAU,CAAA,UAAA,GAAqC,WAAW,CAAC;QAGpE,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAEV,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAsB,GAAG,CAAC,CAAC;AAyB3D,KAAA;IAvBG,IACW,UAAU,CAAC,IAAyB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;IAEM,MAAM,CAAC,SAAgC,EAAE,KAAc,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC5B,gBAAA,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5B,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC5B,IAAI,GAAG,KAAK,SAAS,EAAE;oBACnB,OAAO;AACV,iBAAA;AAED,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,gBAAA,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;KACpF;+GAlCQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAXnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,uBAAuB,CAAC;AACpB,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,SAAS,EAAE,IAAI;aAClB,CAAC;AACL,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAOgB,SAAS,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAGT,qBAAqB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnB5B,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0wCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAejB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,gBAAgB,EAEX,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,uBAAuB,CAAC;AACpB,4BAAA,WAAW,EAAE,UAAU;AACvB,4BAAA,SAAS,EAAE,IAAI;yBAClB,CAAC;qBACL,EACe,cAAA,EAAA,CAAC,QAAQ,CAAC,EACpB,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,QAAQ;AAC/B,qBAAA,EAAA,MAAA,EAAA,CAAA,0wCAAA,CAAA,EAAA,CAAA;8BAIe,OAAO,EAAA,CAAA;sBADtB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,IAAI,EAAQ,CAAA;gBAIjC,UAAU,EAAA,CAAA;sBADzB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAQ,CAAA;gBAItD,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAMK,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,MAAM,CAAA;;;ACxCJ,MAAA,YAAY,GAAG;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,SAAS;IACT,OAAO;;;ACVX;;AAEG;;;;"}
@@ -1,43 +1,46 @@
1
1
  import { NgIf, NgTemplateOutlet } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { TemplateRef, Component, ChangeDetectionStrategy, ContentChild, Input } from '@angular/core';
4
- import { TuiItem } from '@taiga-ui/cdk/directives';
3
+ import { signal, TemplateRef, Component, ChangeDetectionStrategy, ContentChild, Input } from '@angular/core';
4
+ import { TuiItem } from '@taiga-ui/cdk/directives/item';
5
5
 
6
6
  class TuiExpand {
7
7
  constructor() {
8
- this.animating = false;
9
- this.expanded = false;
8
+ this.signal = signal(false);
9
+ this.animating = signal(false);
10
+ }
11
+ set expanded(expanded) {
12
+ this.signal.set(expanded);
10
13
  }
11
14
  onTransitionEnd({ propertyName }) {
12
15
  if (propertyName === 'grid-template-rows') {
13
- this.animating = this.expanded;
16
+ this.animating.set(this.signal());
14
17
  }
15
18
  }
16
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiExpand, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiExpand, isStandalone: true, selector: "tui-expand", inputs: { expanded: "expanded" }, host: { listeners: { "transitionend.self": "onTransitionEnd($event)" }, properties: { "class._expanded": "expanded" } }, queries: [{ propertyName: "content", first: true, predicate: TuiItem, descendants: true, read: TemplateRef }], ngImport: i0, template: `
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiExpand, isStandalone: true, selector: "tui-expand", inputs: { expanded: "expanded" }, host: { listeners: { "transitionend.self": "onTransitionEnd($event)" }, properties: { "class._expanded": "signal()" } }, queries: [{ propertyName: "content", first: true, predicate: TuiItem, descendants: true, read: TemplateRef }], ngImport: i0, template: `
18
21
  <div class="t-wrapper">
19
22
  <ng-container
20
- *ngIf="expanded || animating"
23
+ *ngIf="signal() || animating()"
21
24
  [ngTemplateOutlet]="content || null"
22
25
  />
23
26
  <ng-content />
24
27
  </div>
25
- `, isInline: true, styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ `, isInline: true, styles: [":host{transition-property:grid-template-rows,padding;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host:not(._expanded){padding-block:0}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
29
  }
27
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiExpand, decorators: [{
28
31
  type: Component,
29
32
  args: [{ standalone: true, selector: 'tui-expand', imports: [NgIf, NgTemplateOutlet], template: `
30
33
  <div class="t-wrapper">
31
34
  <ng-container
32
- *ngIf="expanded || animating"
35
+ *ngIf="signal() || animating()"
33
36
  [ngTemplateOutlet]="content || null"
34
37
  />
35
38
  <ng-content />
36
39
  </div>
37
40
  `, changeDetection: ChangeDetectionStrategy.OnPush, host: {
38
- '[class._expanded]': 'expanded',
41
+ '[class._expanded]': 'signal()',
39
42
  '(transitionend.self)': 'onTransitionEnd($event)',
40
- }, styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"] }]
43
+ }, styles: [":host{transition-property:grid-template-rows,padding;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;grid-template-rows:0fr;transition-delay:1ms}:host:not(._expanded){padding-block:0}:host._expanded{grid-template-rows:1fr}:host._expanded .t-wrapper{opacity:1;visibility:visible}.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;opacity:0;visibility:hidden}\n"] }]
41
44
  }], propDecorators: { content: [{
42
45
  type: ContentChild,
43
46
  args: [TuiItem, { read: TemplateRef }]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-expand.mjs","sources":["../../../projects/experimental/components/expand/expand.component.ts","../../../projects/experimental/components/expand/taiga-ui-experimental-components-expand.ts"],"sourcesContent":["import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport {TuiItem} from '@taiga-ui/cdk/directives';\n\n@Component({\n standalone: true,\n selector: 'tui-expand',\n imports: [NgIf, NgTemplateOutlet],\n template: `\n <div class=\"t-wrapper\">\n <ng-container\n *ngIf=\"expanded || animating\"\n [ngTemplateOutlet]=\"content || null\"\n />\n <ng-content />\n </div>\n `,\n styleUrls: ['./expand.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expanded]': 'expanded',\n '(transitionend.self)': 'onTransitionEnd($event)',\n },\n})\nexport class TuiExpand {\n @ContentChild(TuiItem, {read: TemplateRef})\n protected content?: TemplateRef<any>;\n\n protected animating = false;\n\n @Input()\n public expanded = false;\n\n protected onTransitionEnd({propertyName}: TransitionEvent): void {\n if (propertyName === 'grid-template-rows') {\n this.animating = this.expanded;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUA,MAoBa,SAAS,CAAA;AApBtB,IAAA,WAAA,GAAA;QAwBc,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAGrB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAO3B,KAAA;IALa,eAAe,CAAC,EAAC,YAAY,EAAkB,EAAA;QACrD,IAAI,YAAY,KAAK,oBAAoB,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,SAAA;KACJ;+GAbQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EACJ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,EAAS,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAjB/B,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;KAQT,EATS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,odAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAiBvB,SAAS,EAAA,UAAA,EAAA,CAAA;kBApBrB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,YAAY,EACb,OAAA,EAAA,CAAC,IAAI,EAAE,gBAAgB,CAAC,EACvB,QAAA,EAAA,CAAA;;;;;;;;KAQT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,sBAAsB,EAAE,yBAAyB;AACpD,qBAAA,EAAA,MAAA,EAAA,CAAA,odAAA,CAAA,EAAA,CAAA;8BAIS,OAAO,EAAA,CAAA;sBADhB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBAMnC,QAAQ,EAAA,CAAA;sBADd,KAAK;;;ACpCV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-experimental-components-expand.mjs","sources":["../../../projects/experimental/components/expand/expand.component.ts","../../../projects/experimental/components/expand/taiga-ui-experimental-components-expand.ts"],"sourcesContent":["import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\n\n@Component({\n standalone: true,\n selector: 'tui-expand',\n imports: [NgIf, NgTemplateOutlet],\n template: `\n <div class=\"t-wrapper\">\n <ng-container\n *ngIf=\"signal() || animating()\"\n [ngTemplateOutlet]=\"content || null\"\n />\n <ng-content />\n </div>\n `,\n styleUrls: ['./expand.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expanded]': 'signal()',\n '(transitionend.self)': 'onTransitionEnd($event)',\n },\n})\nexport class TuiExpand {\n @ContentChild(TuiItem, {read: TemplateRef})\n protected content?: TemplateRef<any>;\n\n protected readonly signal = signal(false);\n protected readonly animating = signal(false);\n\n @Input()\n public set expanded(expanded: boolean) {\n this.signal.set(expanded);\n }\n\n protected onTransitionEnd({propertyName}: TransitionEvent): void {\n if (propertyName === 'grid-template-rows') {\n this.animating.set(this.signal());\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAWA,MAoBa,SAAS,CAAA;AApBtB,IAAA,WAAA,GAAA;AAwBuB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAYhD,KAAA;IAVG,IACW,QAAQ,CAAC,QAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAES,eAAe,CAAC,EAAC,YAAY,EAAkB,EAAA;QACrD,IAAI,YAAY,KAAK,oBAAoB,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,SAAA;KACJ;+GAhBQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EACJ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,EAAS,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAjB/B,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;KAQT,EATS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kgBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAiBvB,SAAS,EAAA,UAAA,EAAA,CAAA;kBApBrB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,YAAY,EACb,OAAA,EAAA,CAAC,IAAI,EAAE,gBAAgB,CAAC,EACvB,QAAA,EAAA,CAAA;;;;;;;;KAQT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,sBAAsB,EAAE,yBAAyB;AACpD,qBAAA,EAAA,MAAA,EAAA,CAAA,kgBAAA,CAAA,EAAA,CAAA;8BAIS,OAAO,EAAA,CAAA;sBADhB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBAO/B,QAAQ,EAAA,CAAA;sBADlB,KAAK;;;ACtCV;;AAEG;;;;"}
@@ -1,3 +1,4 @@
1
+ export * from '@taiga-ui/experimental/components/accordion';
1
2
  export * from '@taiga-ui/experimental/components/expand';
2
3
  export * from '@taiga-ui/experimental/components/hint';
3
4
  export * from '@taiga-ui/experimental/components/input-phone-international';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components.mjs","sources":["../../../projects/experimental/components/taiga-ui-experimental-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-experimental-components.mjs","sources":["../../../projects/experimental/components/taiga-ui-experimental-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/experimental",
3
- "version": "4.19.0-canary.f57082a",
3
+ "version": "4.20.0",
4
4
  "description": "A package with Taiga UI experimental components",
5
5
  "keywords": [
6
6
  "angular",
@@ -13,10 +13,10 @@
13
13
  "peerDependencies": {
14
14
  "@angular/common": ">=16.0.0",
15
15
  "@angular/core": ">=16.0.0",
16
- "@taiga-ui/addon-commerce": "^4.19.0",
17
- "@taiga-ui/cdk": "^4.19.0",
18
- "@taiga-ui/core": "^4.19.0",
19
- "@taiga-ui/kit": "^4.19.0",
16
+ "@taiga-ui/addon-commerce": "^4.20.0",
17
+ "@taiga-ui/cdk": "^4.20.0",
18
+ "@taiga-ui/core": "^4.20.0",
19
+ "@taiga-ui/kit": "^4.20.0",
20
20
  "@taiga-ui/polymorpheus": "^4.7.4",
21
21
  "rxjs": ">=7.0.0"
22
22
  },
@@ -38,23 +38,29 @@
38
38
  "esm": "./esm2022/components/taiga-ui-experimental-components.mjs",
39
39
  "default": "./fesm2022/taiga-ui-experimental-components.mjs"
40
40
  },
41
+ "./components/expand": {
42
+ "types": "./components/expand/index.d.ts",
43
+ "esm2022": "./esm2022/components/expand/taiga-ui-experimental-components-expand.mjs",
44
+ "esm": "./esm2022/components/expand/taiga-ui-experimental-components-expand.mjs",
45
+ "default": "./fesm2022/taiga-ui-experimental-components-expand.mjs"
46
+ },
41
47
  "./components/hint": {
42
48
  "types": "./components/hint/index.d.ts",
43
49
  "esm2022": "./esm2022/components/hint/taiga-ui-experimental-components-hint.mjs",
44
50
  "esm": "./esm2022/components/hint/taiga-ui-experimental-components-hint.mjs",
45
51
  "default": "./fesm2022/taiga-ui-experimental-components-hint.mjs"
46
52
  },
53
+ "./components/accordion": {
54
+ "types": "./components/accordion/index.d.ts",
55
+ "esm2022": "./esm2022/components/accordion/taiga-ui-experimental-components-accordion.mjs",
56
+ "esm": "./esm2022/components/accordion/taiga-ui-experimental-components-accordion.mjs",
57
+ "default": "./fesm2022/taiga-ui-experimental-components-accordion.mjs"
58
+ },
47
59
  "./components/input-phone-international": {
48
60
  "types": "./components/input-phone-international/index.d.ts",
49
61
  "esm2022": "./esm2022/components/input-phone-international/taiga-ui-experimental-components-input-phone-international.mjs",
50
62
  "esm": "./esm2022/components/input-phone-international/taiga-ui-experimental-components-input-phone-international.mjs",
51
63
  "default": "./fesm2022/taiga-ui-experimental-components-input-phone-international.mjs"
52
- },
53
- "./components/expand": {
54
- "types": "./components/expand/index.d.ts",
55
- "esm2022": "./esm2022/components/expand/taiga-ui-experimental-components-expand.mjs",
56
- "esm": "./esm2022/components/expand/taiga-ui-experimental-components-expand.mjs",
57
- "default": "./fesm2022/taiga-ui-experimental-components-expand.mjs"
58
64
  }
59
65
  },
60
66
  "sideEffects": false,