@taiga-ui/core 4.7.0-canary.2dd3ca2 → 4.7.0-canary.88a8f5b

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.
@@ -2,12 +2,14 @@ import type { TuiInteractiveState } from '@taiga-ui/core/types';
2
2
  import { type TuiAppearanceOptions } from './appearance.options';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiAppearance {
5
+ private readonly el;
5
6
  protected readonly nothing: undefined;
6
7
  protected readonly modes: import("@angular/core").Signal<string | null>;
7
8
  readonly appearance: import("@angular/core").WritableSignal<(Record<never, never> & string) | "accent" | "destructive" | "error" | "flat" | "floating" | "glass" | "info" | "link" | "neutral" | "opposite" | "outline" | "primary" | "secondary" | "success" | "textfield" | "warning" | "whiteblock">;
8
9
  readonly state: import("@angular/core").WritableSignal<TuiInteractiveState | null>;
9
10
  readonly focus: import("@angular/core").WritableSignal<boolean | null>;
10
11
  readonly mode: import("@angular/core").WritableSignal<string | readonly string[] | null>;
12
+ constructor();
11
13
  set tuiAppearance(appearance: TuiAppearanceOptions['appearance']);
12
14
  set tuiAppearanceState(state: TuiInteractiveState | null);
13
15
  set tuiAppearanceFocus(focus: boolean | null);
@@ -1,19 +1,21 @@
1
- import { ChangeDetectionStrategy, Component, computed, Directive, inject, Input, signal, ViewEncapsulation, } from '@angular/core';
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, computed, Directive, inject, Input, signal, ViewEncapsulation, } from '@angular/core';
2
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
2
3
  import { tuiIsString, tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
3
4
  import { TUI_APPEARANCE_OPTIONS } from './appearance.options';
4
5
  import * as i0 from "@angular/core";
5
6
  class TuiAppearanceStyles {
6
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearanceStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearanceStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-appearance" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearanceStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-appearance" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance].tui-appearance-initializing{transition:none!important}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
9
  }
9
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearanceStyles, decorators: [{
10
11
  type: Component,
11
12
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
13
  class: 'tui-appearance',
13
- }, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"] }]
14
+ }, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance].tui-appearance-initializing{transition:none!important}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"] }]
14
15
  }] });
15
16
  class TuiAppearance {
16
17
  constructor() {
18
+ this.el = tuiInjectElement();
17
19
  this.nothing = tuiWithStyles(TuiAppearanceStyles);
18
20
  this.modes = computed((mode = this.mode()) => !mode || tuiIsString(mode) ? mode : mode.join(' '));
19
21
  // TODO: refactor to signal inputs after Angular update
@@ -21,6 +23,12 @@ class TuiAppearance {
21
23
  this.state = signal(null);
22
24
  this.focus = signal(null);
23
25
  this.mode = signal(null);
26
+ afterNextRender(() => {
27
+ this.el.classList.toggle('tui-appearance-initializing',
28
+ // Triggering reflow so there's no transition
29
+ // eslint-disable-next-line
30
+ !!this.el.offsetWidth && false);
31
+ });
24
32
  }
25
33
  set tuiAppearance(appearance) {
26
34
  this.appearance.set(appearance);
@@ -35,7 +43,7 @@ class TuiAppearance {
35
43
  this.mode.set(mode);
36
44
  }
37
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearance, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearance, isStandalone: true, selector: "[tuiAppearance]", inputs: { tuiAppearance: "tuiAppearance", tuiAppearanceState: "tuiAppearanceState", tuiAppearanceFocus: "tuiAppearanceFocus", tuiAppearanceMode: "tuiAppearanceMode" }, host: { attributes: { "tuiAppearance": "" }, properties: { "attr.data-appearance": "appearance()", "attr.data-state": "state()", "attr.data-focus": "focus()", "attr.data-mode": "modes()" } }, ngImport: i0 }); }
46
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearance, isStandalone: true, selector: "[tuiAppearance]", inputs: { tuiAppearance: "tuiAppearance", tuiAppearanceState: "tuiAppearanceState", tuiAppearanceFocus: "tuiAppearanceFocus", tuiAppearanceMode: "tuiAppearanceMode" }, host: { attributes: { "tuiAppearance": "" }, properties: { "attr.data-appearance": "appearance()", "attr.data-state": "state()", "attr.data-focus": "focus()", "attr.data-mode": "modes()" }, classAttribute: "tui-appearance-initializing" }, ngImport: i0 }); }
39
47
  }
40
48
  export { TuiAppearance };
41
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearance, decorators: [{
@@ -44,6 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
44
52
  standalone: true,
45
53
  selector: '[tuiAppearance]',
46
54
  host: {
55
+ class: 'tui-appearance-initializing',
47
56
  tuiAppearance: '',
48
57
  '[attr.data-appearance]': 'appearance()',
49
58
  '[attr.data-state]': 'state()',
@@ -51,7 +60,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
51
60
  '[attr.data-mode]': 'modes()',
52
61
  },
53
62
  }]
54
- }], propDecorators: { tuiAppearance: [{
63
+ }], ctorParameters: function () { return []; }, propDecorators: { tuiAppearance: [{
55
64
  type: Input
56
65
  }], tuiAppearanceState: [{
57
66
  type: Input
@@ -60,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
69
  }], tuiAppearanceMode: [{
61
70
  type: Input
62
71
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZWFyYW5jZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvYXBwZWFyYW5jZS9hcHBlYXJhbmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzdFLE9BQU8sRUFBQyxzQkFBc0IsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFdkYsTUFVTSxtQkFBbUI7K0dBQW5CLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9IQVJYLEVBQUU7OzRGQVFWLG1CQUFtQjtrQkFWeEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sRUFBRSxpQkFFRyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxnQkFBZ0I7cUJBQzFCOztBQUlMLE1BV2EsYUFBYTtJQVgxQjtRQVl1QixZQUFPLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUN2RCxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDckQsQ0FBQztRQUVGLHVEQUF1RDtRQUN2QyxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELFVBQUssR0FBRyxNQUFNLENBQTZCLElBQUksQ0FBQyxDQUFDO1FBQ2pELFVBQUssR0FBRyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQW9DLElBQUksQ0FBQyxDQUFDO0tBcUIxRTtJQW5CRyxJQUNXLGFBQWEsQ0FBQyxVQUE4QztRQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxrQkFBa0IsQ0FBQyxLQUFpQztRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDVyxrQkFBa0IsQ0FBQyxLQUFxQjtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDVyxpQkFBaUIsQ0FBQyxJQUF1QztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQTlCUSxhQUFhO21HQUFiLGFBQWE7O1NBQWIsYUFBYTs0RkFBYixhQUFhO2tCQVh6QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLEVBQUU7d0JBQ2pCLHdCQUF3QixFQUFFLGNBQWM7d0JBQ3hDLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLGtCQUFrQixFQUFFLFNBQVM7cUJBQ2hDO2lCQUNKOzhCQWNjLGFBQWE7c0JBRHZCLEtBQUs7Z0JBTUssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQU1LLGtCQUFrQjtzQkFENUIsS0FBSztnQkFNSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aUlzU3RyaW5nLCB0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aUludGVyYWN0aXZlU3RhdGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfQVBQRUFSQU5DRV9PUFRJT05TLCB0eXBlIFR1aUFwcGVhcmFuY2VPcHRpb25zfSBmcm9tICcuL2FwcGVhcmFuY2Uub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlczogWydAaW1wb3J0IFwiQHRhaWdhLXVpL2NvcmUvc3R5bGVzL2NvbXBvbmVudHMvYXBwZWFyYW5jZS5sZXNzXCI7J10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHVpLWFwcGVhcmFuY2UnLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpQXBwZWFyYW5jZVN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUFwcGVhcmFuY2VdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHR1aUFwcGVhcmFuY2U6ICcnLFxuICAgICAgICAnW2F0dHIuZGF0YS1hcHBlYXJhbmNlXSc6ICdhcHBlYXJhbmNlKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLWZvY3VzXSc6ICdmb2N1cygpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtbW9kZV0nOiAnbW9kZXMoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQXBwZWFyYW5jZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aUFwcGVhcmFuY2VTdHlsZXMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2RlcyA9IGNvbXB1dGVkKChtb2RlID0gdGhpcy5tb2RlKCkpID0+XG4gICAgICAgICFtb2RlIHx8IHR1aUlzU3RyaW5nKG1vZGUpID8gbW9kZSA6IG1vZGUuam9pbignICcpLFxuICAgICk7XG5cbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byBzaWduYWwgaW5wdXRzIGFmdGVyIEFuZ3VsYXIgdXBkYXRlXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBzaWduYWwoaW5qZWN0KFRVSV9BUFBFQVJBTkNFX09QVElPTlMpLmFwcGVhcmFuY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IHNpZ25hbDxUdWlJbnRlcmFjdGl2ZVN0YXRlIHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzID0gc2lnbmFsPGJvb2xlYW4gfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZSA9IHNpZ25hbDxzdHJpbmcgfCByZWFkb25seSBzdHJpbmdbXSB8IG51bGw+KG51bGwpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aUFwcGVhcmFuY2UoYXBwZWFyYW5jZTogVHVpQXBwZWFyYW5jZU9wdGlvbnNbJ2FwcGVhcmFuY2UnXSkge1xuICAgICAgICB0aGlzLmFwcGVhcmFuY2Uuc2V0KGFwcGVhcmFuY2UpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0dWlBcHBlYXJhbmNlU3RhdGUoc3RhdGU6IFR1aUludGVyYWN0aXZlU3RhdGUgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KHN0YXRlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdHVpQXBwZWFyYW5jZUZvY3VzKGZvY3VzOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICB0aGlzLmZvY3VzLnNldChmb2N1cyk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aUFwcGVhcmFuY2VNb2RlKG1vZGU6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICAgIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZWFyYW5jZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvYXBwZWFyYW5jZS9hcHBlYXJhbmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUc3RSxPQUFPLEVBQUMsc0JBQXNCLEVBQTRCLE1BQU0sc0JBQXNCLENBQUM7O0FBRXZGLE1BVU0sbUJBQW1COytHQUFuQixtQkFBbUI7bUdBQW5CLG1CQUFtQixvSEFSWCxFQUFFOzs0RkFRVixtQkFBbUI7a0JBVnhCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsZ0JBQWdCO3FCQUMxQjs7QUFJTCxNQVlhLGFBQWE7SUFjdEI7UUFiaUIsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFdEIsWUFBTyxHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdDLFVBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDdkQsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ3JELENBQUM7UUFFRix1REFBdUQ7UUFDdkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxVQUFLLEdBQUcsTUFBTSxDQUE2QixJQUFJLENBQUMsQ0FBQztRQUNqRCxVQUFLLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFvQyxJQUFJLENBQUMsQ0FBQztRQUduRSxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDcEIsNkJBQTZCO1lBQzdCLDZDQUE2QztZQUM3QywyQkFBMkI7WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FDakMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQ1csYUFBYSxDQUFDLFVBQThDO1FBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLGtCQUFrQixDQUFDLEtBQWlDO1FBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLGtCQUFrQixDQUFDLEtBQXFCO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLGlCQUFpQixDQUFDLElBQXVDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7K0dBM0NRLGFBQWE7bUdBQWIsYUFBYTs7U0FBYixhQUFhOzRGQUFiLGFBQWE7a0JBWnpCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsNkJBQTZCO3dCQUNwQyxhQUFhLEVBQUUsRUFBRTt3QkFDakIsd0JBQXdCLEVBQUUsY0FBYzt3QkFDeEMsbUJBQW1CLEVBQUUsU0FBUzt3QkFDOUIsbUJBQW1CLEVBQUUsU0FBUzt3QkFDOUIsa0JBQWtCLEVBQUUsU0FBUztxQkFDaEM7aUJBQ0o7MEVBMkJjLGFBQWE7c0JBRHZCLEtBQUs7Z0JBTUssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQU1LLGtCQUFrQjtzQkFENUIsS0FBSztnQkFNSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRGlyZWN0aXZlLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBzaWduYWwsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUlzU3RyaW5nLCB0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aUludGVyYWN0aXZlU3RhdGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfQVBQRUFSQU5DRV9PUFRJT05TLCB0eXBlIFR1aUFwcGVhcmFuY2VPcHRpb25zfSBmcm9tICcuL2FwcGVhcmFuY2Uub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlczogWydAaW1wb3J0IFwiQHRhaWdhLXVpL2NvcmUvc3R5bGVzL2NvbXBvbmVudHMvYXBwZWFyYW5jZS5sZXNzXCI7J10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHVpLWFwcGVhcmFuY2UnLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpQXBwZWFyYW5jZVN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUFwcGVhcmFuY2VdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHVpLWFwcGVhcmFuY2UtaW5pdGlhbGl6aW5nJyxcbiAgICAgICAgdHVpQXBwZWFyYW5jZTogJycsXG4gICAgICAgICdbYXR0ci5kYXRhLWFwcGVhcmFuY2VdJzogJ2FwcGVhcmFuY2UoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZm9jdXNdJzogJ2ZvY3VzKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1tb2RlXSc6ICdtb2RlcygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBcHBlYXJhbmNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aUFwcGVhcmFuY2VTdHlsZXMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2RlcyA9IGNvbXB1dGVkKChtb2RlID0gdGhpcy5tb2RlKCkpID0+XG4gICAgICAgICFtb2RlIHx8IHR1aUlzU3RyaW5nKG1vZGUpID8gbW9kZSA6IG1vZGUuam9pbignICcpLFxuICAgICk7XG5cbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byBzaWduYWwgaW5wdXRzIGFmdGVyIEFuZ3VsYXIgdXBkYXRlXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBzaWduYWwoaW5qZWN0KFRVSV9BUFBFQVJBTkNFX09QVElPTlMpLmFwcGVhcmFuY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IHNpZ25hbDxUdWlJbnRlcmFjdGl2ZVN0YXRlIHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzID0gc2lnbmFsPGJvb2xlYW4gfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZSA9IHNpZ25hbDxzdHJpbmcgfCByZWFkb25seSBzdHJpbmdbXSB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC50b2dnbGUoXG4gICAgICAgICAgICAgICAgJ3R1aS1hcHBlYXJhbmNlLWluaXRpYWxpemluZycsXG4gICAgICAgICAgICAgICAgLy8gVHJpZ2dlcmluZyByZWZsb3cgc28gdGhlcmUncyBubyB0cmFuc2l0aW9uXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgISF0aGlzLmVsLm9mZnNldFdpZHRoICYmIGZhbHNlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aUFwcGVhcmFuY2UoYXBwZWFyYW5jZTogVHVpQXBwZWFyYW5jZU9wdGlvbnNbJ2FwcGVhcmFuY2UnXSkge1xuICAgICAgICB0aGlzLmFwcGVhcmFuY2Uuc2V0KGFwcGVhcmFuY2UpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0dWlBcHBlYXJhbmNlU3RhdGUoc3RhdGU6IFR1aUludGVyYWN0aXZlU3RhdGUgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KHN0YXRlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdHVpQXBwZWFyYW5jZUZvY3VzKGZvY3VzOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICB0aGlzLmZvY3VzLnNldChmb2N1cyk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aUFwcGVhcmFuY2VNb2RlKG1vZGU6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
22
22
  name: 'tuiFlag',
23
23
  }]
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9waXBlcy9mbGFnL2ZsYWcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBR3RELE1BSWEsV0FBVztJQUp4QjtRQUtxQixlQUFVLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBY3pEO0lBUFUsU0FBUyxDQUFDLGNBQWtEO1FBQy9ELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxVQUFVLGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQzFFLENBQUM7K0dBZFEsV0FBVzs2R0FBWCxXQUFXOztTQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDRixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLFNBQVM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1BpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpbmplY3QsIFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVNTRVRTX1BBVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpQ291bnRyeUlzb0NvZGV9IGZyb20gJ0B0YWlnYS11aS9pMThuL3R5cGVzJztcblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3R1aUZsYWcnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGbGFnUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGljUGF0aCA9IGluamVjdChUVUlfQVNTRVRTX1BBVEgpO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybShjb3VudHJ5SXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUgfCBzdHJpbmcpOiBzdHJpbmc7XG4gICAgcHVibGljIHRyYW5zZm9ybShcbiAgICAgICAgY291bnRyeUlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlIHwgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICk6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybShjb3VudHJ5SXNvQ29kZT86IFR1aUNvdW50cnlJc29Db2RlIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybShjb3VudHJ5SXNvQ29kZT86IFR1aUNvdW50cnlJc29Db2RlIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoIWNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9L2ZsYWdzLyR7Y291bnRyeUlzb0NvZGUudG9Mb3dlckNhc2UoKX0uc3ZnYDtcbiAgICB9XG59XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9waXBlcy9mbGFnL2ZsYWcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBR3RELE1BSWEsV0FBVztJQUp4QjtRQUtxQixlQUFVLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBb0J6RDtJQVRVLFNBQVMsQ0FDWixjQUEyRTtRQUUzRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsVUFBVSxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUMxRSxDQUFDOytHQXBCUSxXQUFXOzZHQUFYLFdBQVc7O1NBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUp2QixJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsU0FBUztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdCwgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9BU1NFVFNfUEFUSH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4vdHlwZXMnO1xuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAndHVpRmxhZycsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZsYWdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNQYXRoID0gaW5qZWN0KFRVSV9BU1NFVFNfUEFUSCk7XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgICAgICBjb3VudHJ5SXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUgfCAoUmVjb3JkPG5ldmVyLCBuZXZlcj4gJiBzdHJpbmcpLFxuICAgICk6IHN0cmluZztcbiAgICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgICAgICBjb3VudHJ5SXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUgfCAoUmVjb3JkPG5ldmVyLCBuZXZlcj4gJiBzdHJpbmcpIHwgdW5kZWZpbmVkLFxuICAgICk6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybShcbiAgICAgICAgY291bnRyeUlzb0NvZGU/OiBUdWlDb3VudHJ5SXNvQ29kZSB8IChSZWNvcmQ8bmV2ZXIsIG5ldmVyPiAmIHN0cmluZykgfCBudWxsLFxuICAgICk6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybShcbiAgICAgICAgY291bnRyeUlzb0NvZGU/OiBUdWlDb3VudHJ5SXNvQ29kZSB8IChSZWNvcmQ8bmV2ZXIsIG5ldmVyPiAmIHN0cmluZykgfCBudWxsLFxuICAgICk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoIWNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9L2ZsYWdzLyR7Y291bnRyeUlzb0NvZGUudG9Mb3dlckNhc2UoKX0uc3ZnYDtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { tuiCreateToken, tuiProvide, tuiWithStyles, tuiIsString, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed, signal, inject, Directive, Input } from '@angular/core';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed, signal, inject, afterNextRender, Directive, Input } from '@angular/core';
4
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
4
5
 
5
6
  const TUI_APPEARANCE_DEFAULT_OPTIONS = {
6
7
  appearance: '',
@@ -12,16 +13,17 @@ function tuiAppearanceOptionsProvider(token) {
12
13
 
13
14
  class TuiAppearanceStyles {
14
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearanceStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearanceStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-appearance" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearanceStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-appearance" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance].tui-appearance-initializing{transition:none!important}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
17
  }
17
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearanceStyles, decorators: [{
18
19
  type: Component,
19
20
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
20
21
  class: 'tui-appearance',
21
- }, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"] }]
22
+ }, styles: ["[tuiAppearance]{transition-property:color,background,opacity,box-shadow,border;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;appearance:none;outline:.125rem solid transparent;outline-offset:-.125rem}[tuiAppearance].tui-appearance-initializing{transition:none!important}[tuiAppearance]:focus-visible:not([data-focus=false]){outline-color:var(--tui-border-focus)}[tuiAppearance][data-focus=true]{outline-color:var(--tui-border-focus)}[tuiAppearance]:disabled:not([data-state]),[tuiAppearance][data-state=disabled]{pointer-events:none;opacity:var(--tui-disabled-opacity)}\n"] }]
22
23
  }] });
23
24
  class TuiAppearance {
24
25
  constructor() {
26
+ this.el = tuiInjectElement();
25
27
  this.nothing = tuiWithStyles(TuiAppearanceStyles);
26
28
  this.modes = computed((mode = this.mode()) => !mode || tuiIsString(mode) ? mode : mode.join(' '));
27
29
  // TODO: refactor to signal inputs after Angular update
@@ -29,6 +31,12 @@ class TuiAppearance {
29
31
  this.state = signal(null);
30
32
  this.focus = signal(null);
31
33
  this.mode = signal(null);
34
+ afterNextRender(() => {
35
+ this.el.classList.toggle('tui-appearance-initializing',
36
+ // Triggering reflow so there's no transition
37
+ // eslint-disable-next-line
38
+ !!this.el.offsetWidth && false);
39
+ });
32
40
  }
33
41
  set tuiAppearance(appearance) {
34
42
  this.appearance.set(appearance);
@@ -43,7 +51,7 @@ class TuiAppearance {
43
51
  this.mode.set(mode);
44
52
  }
45
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearance, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearance, isStandalone: true, selector: "[tuiAppearance]", inputs: { tuiAppearance: "tuiAppearance", tuiAppearanceState: "tuiAppearanceState", tuiAppearanceFocus: "tuiAppearanceFocus", tuiAppearanceMode: "tuiAppearanceMode" }, host: { attributes: { "tuiAppearance": "" }, properties: { "attr.data-appearance": "appearance()", "attr.data-state": "state()", "attr.data-focus": "focus()", "attr.data-mode": "modes()" } }, ngImport: i0 }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAppearance, isStandalone: true, selector: "[tuiAppearance]", inputs: { tuiAppearance: "tuiAppearance", tuiAppearanceState: "tuiAppearanceState", tuiAppearanceFocus: "tuiAppearanceFocus", tuiAppearanceMode: "tuiAppearanceMode" }, host: { attributes: { "tuiAppearance": "" }, properties: { "attr.data-appearance": "appearance()", "attr.data-state": "state()", "attr.data-focus": "focus()", "attr.data-mode": "modes()" }, classAttribute: "tui-appearance-initializing" }, ngImport: i0 }); }
47
55
  }
48
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAppearance, decorators: [{
49
57
  type: Directive,
@@ -51,6 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
51
59
  standalone: true,
52
60
  selector: '[tuiAppearance]',
53
61
  host: {
62
+ class: 'tui-appearance-initializing',
54
63
  tuiAppearance: '',
55
64
  '[attr.data-appearance]': 'appearance()',
56
65
  '[attr.data-state]': 'state()',
@@ -58,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
67
  '[attr.data-mode]': 'modes()',
59
68
  },
60
69
  }]
61
- }], propDecorators: { tuiAppearance: [{
70
+ }], ctorParameters: function () { return []; }, propDecorators: { tuiAppearance: [{
62
71
  type: Input
63
72
  }], tuiAppearanceState: [{
64
73
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-directives-appearance.mjs","sources":["../../../projects/core/directives/appearance/appearance.options.ts","../../../projects/core/directives/appearance/appearance.directive.ts","../../../projects/core/directives/appearance/appearance.bindings.ts","../../../projects/core/directives/appearance/with-appearance.ts","../../../projects/core/directives/appearance/taiga-ui-core-directives-appearance.ts"],"sourcesContent":["import type {ExistingProvider, ProviderToken} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Bundled appearances for autocomplete purposes, not exported on purpose\n */\ntype Appearance =\n | 'accent'\n | 'destructive'\n | 'error'\n | 'flat'\n | 'floating'\n | 'glass'\n | 'info'\n | 'link'\n | 'neutral'\n | 'opposite'\n | 'outline'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'textfield'\n | 'warning'\n | 'whiteblock'\n | (Record<never, never> & string);\n\nexport interface TuiAppearanceOptions {\n readonly appearance: Appearance;\n}\n\nexport const TUI_APPEARANCE_DEFAULT_OPTIONS: TuiAppearanceOptions = {\n appearance: '',\n};\n\nexport const TUI_APPEARANCE_OPTIONS = tuiCreateToken(TUI_APPEARANCE_DEFAULT_OPTIONS);\n\nexport function tuiAppearanceOptionsProvider(\n token: ProviderToken<TuiAppearanceOptions>,\n): ExistingProvider {\n return tuiProvide(TUI_APPEARANCE_OPTIONS, token);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TUI_APPEARANCE_OPTIONS, type TuiAppearanceOptions} from './appearance.options';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/core/styles/components/appearance.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-appearance',\n },\n})\nclass TuiAppearanceStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiAppearance]',\n host: {\n tuiAppearance: '',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-state]': 'state()',\n '[attr.data-focus]': 'focus()',\n '[attr.data-mode]': 'modes()',\n },\n})\nexport class TuiAppearance {\n protected readonly nothing = tuiWithStyles(TuiAppearanceStyles);\n protected readonly modes = computed((mode = this.mode()) =>\n !mode || tuiIsString(mode) ? mode : mode.join(' '),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly appearance = signal(inject(TUI_APPEARANCE_OPTIONS).appearance);\n public readonly state = signal<TuiInteractiveState | null>(null);\n public readonly focus = signal<boolean | null>(null);\n public readonly mode = signal<string | readonly string[] | null>(null);\n\n @Input()\n public set tuiAppearance(appearance: TuiAppearanceOptions['appearance']) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiAppearanceState(state: TuiInteractiveState | null) {\n this.state.set(state);\n }\n\n @Input()\n public set tuiAppearanceFocus(focus: boolean | null) {\n this.focus.set(focus);\n }\n\n @Input()\n public set tuiAppearanceMode(mode: string | readonly string[] | null) {\n this.mode.set(mode);\n }\n}\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TuiAppearance} from './appearance.directive';\n\ntype A = string;\n\ntype S = TuiInteractiveState | null;\n\ntype F = boolean | null;\n\ntype M = string | readonly string[] | null;\n\nexport function tuiAppearance(value: A | WritableSignal<A>): WritableSignal<A>;\nexport function tuiAppearance(value: Signal<A>): Signal<A>;\nexport function tuiAppearance(value: A | Signal<A>): Signal<A> {\n return tuiDirectiveBinding(TuiAppearance, 'appearance', value);\n}\n\nexport function tuiAppearanceState(value: S | WritableSignal<S>): WritableSignal<S>;\nexport function tuiAppearanceState(value: Signal<S>): Signal<S>;\nexport function tuiAppearanceState(value: S | Signal<S>): Signal<S> {\n return tuiDirectiveBinding(TuiAppearance, 'state', value);\n}\n\nexport function tuiAppearanceFocus(value: F | WritableSignal<F>): WritableSignal<F>;\nexport function tuiAppearanceFocus(value: Signal<F>): Signal<F>;\nexport function tuiAppearanceFocus(value: F | Signal<F>): Signal<F> {\n return tuiDirectiveBinding(TuiAppearance, 'focus', value);\n}\n\nexport function tuiAppearanceMode(value: M | WritableSignal<M>): WritableSignal<M>;\nexport function tuiAppearanceMode(value: Signal<M>): Signal<M>;\nexport function tuiAppearanceMode(value: M | Signal<M>): Signal<M> {\n return tuiDirectiveBinding(TuiAppearance, 'mode', value);\n}\n","import {Directive} from '@angular/core';\n\nimport {TuiAppearance} from './appearance.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: [\n 'tuiAppearance: appearance',\n 'tuiAppearanceState',\n 'tuiAppearanceFocus',\n 'tuiAppearanceMode',\n ],\n },\n ],\n})\nexport class TuiWithAppearance {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiAppearance"],"mappings":";;;;AA8Ba,MAAA,8BAA8B,GAAyB;AAChE,IAAA,UAAU,EAAE,EAAE;EAChB;MAEW,sBAAsB,GAAG,cAAc,CAAC,8BAA8B,EAAE;AAE/E,SAAU,4BAA4B,CACxC,KAA0C,EAAA;AAE1C,IAAA,OAAO,UAAU,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;AACrD;;ACzBA,MAUM,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oHARX,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,skBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAVxB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,gBAAgB;AAC1B,qBAAA,EAAA,MAAA,EAAA,CAAA,skBAAA,CAAA,EAAA,CAAA;;AAIL,MAWa,aAAa,CAAA;AAX1B,IAAA,WAAA,GAAA;AAYuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KACnD,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CACrD,CAAC;;QAGc,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAoC,IAAI,CAAC,CAAC;AAqB1E,KAAA;IAnBG,IACW,aAAa,CAAC,UAA8C,EAAA;AACnE,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;IAED,IACW,kBAAkB,CAAC,KAAiC,EAAA;AAC3D,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,IACW,kBAAkB,CAAC,KAAqB,EAAA;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,IACW,iBAAiB,CAAC,IAAuC,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;+GA9BQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,EAAE;AACjB,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,kBAAkB,EAAE,SAAS;AAChC,qBAAA;AACJ,iBAAA,CAAA;8BAcc,aAAa,EAAA,CAAA;sBADvB,KAAK;gBAMK,kBAAkB,EAAA,CAAA;sBAD5B,KAAK;gBAMK,kBAAkB,EAAA,CAAA;sBAD5B,KAAK;gBAMK,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;;;ACjDJ,SAAU,aAAa,CAAC,KAAoB,EAAA;IAC9C,OAAO,mBAAmB,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAIK,SAAU,kBAAkB,CAAC,KAAoB,EAAA;IACnD,OAAO,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAIK,SAAU,kBAAkB,CAAC,KAAoB,EAAA;IACnD,OAAO,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAIK,SAAU,iBAAiB,CAAC,KAAoB,EAAA;IAClD,OAAO,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7D;;AChCA,MAca,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,aAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,aAAa;AACxB,4BAAA,MAAM,EAAE;gCACJ,2BAA2B;gCAC3B,oBAAoB;gCACpB,oBAAoB;gCACpB,mBAAmB;AACtB,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-directives-appearance.mjs","sources":["../../../projects/core/directives/appearance/appearance.options.ts","../../../projects/core/directives/appearance/appearance.directive.ts","../../../projects/core/directives/appearance/appearance.bindings.ts","../../../projects/core/directives/appearance/with-appearance.ts","../../../projects/core/directives/appearance/taiga-ui-core-directives-appearance.ts"],"sourcesContent":["import type {ExistingProvider, ProviderToken} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Bundled appearances for autocomplete purposes, not exported on purpose\n */\ntype Appearance =\n | 'accent'\n | 'destructive'\n | 'error'\n | 'flat'\n | 'floating'\n | 'glass'\n | 'info'\n | 'link'\n | 'neutral'\n | 'opposite'\n | 'outline'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'textfield'\n | 'warning'\n | 'whiteblock'\n | (Record<never, never> & string);\n\nexport interface TuiAppearanceOptions {\n readonly appearance: Appearance;\n}\n\nexport const TUI_APPEARANCE_DEFAULT_OPTIONS: TuiAppearanceOptions = {\n appearance: '',\n};\n\nexport const TUI_APPEARANCE_OPTIONS = tuiCreateToken(TUI_APPEARANCE_DEFAULT_OPTIONS);\n\nexport function tuiAppearanceOptionsProvider(\n token: ProviderToken<TuiAppearanceOptions>,\n): ExistingProvider {\n return tuiProvide(TUI_APPEARANCE_OPTIONS, token);\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TUI_APPEARANCE_OPTIONS, type TuiAppearanceOptions} from './appearance.options';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/core/styles/components/appearance.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-appearance',\n },\n})\nclass TuiAppearanceStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiAppearance]',\n host: {\n class: 'tui-appearance-initializing',\n tuiAppearance: '',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-state]': 'state()',\n '[attr.data-focus]': 'focus()',\n '[attr.data-mode]': 'modes()',\n },\n})\nexport class TuiAppearance {\n private readonly el = tuiInjectElement();\n\n protected readonly nothing = tuiWithStyles(TuiAppearanceStyles);\n protected readonly modes = computed((mode = this.mode()) =>\n !mode || tuiIsString(mode) ? mode : mode.join(' '),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly appearance = signal(inject(TUI_APPEARANCE_OPTIONS).appearance);\n public readonly state = signal<TuiInteractiveState | null>(null);\n public readonly focus = signal<boolean | null>(null);\n public readonly mode = signal<string | readonly string[] | null>(null);\n\n constructor() {\n afterNextRender(() => {\n this.el.classList.toggle(\n 'tui-appearance-initializing',\n // Triggering reflow so there's no transition\n // eslint-disable-next-line\n !!this.el.offsetWidth && false,\n );\n });\n }\n\n @Input()\n public set tuiAppearance(appearance: TuiAppearanceOptions['appearance']) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiAppearanceState(state: TuiInteractiveState | null) {\n this.state.set(state);\n }\n\n @Input()\n public set tuiAppearanceFocus(focus: boolean | null) {\n this.focus.set(focus);\n }\n\n @Input()\n public set tuiAppearanceMode(mode: string | readonly string[] | null) {\n this.mode.set(mode);\n }\n}\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TuiAppearance} from './appearance.directive';\n\ntype A = string;\n\ntype S = TuiInteractiveState | null;\n\ntype F = boolean | null;\n\ntype M = string | readonly string[] | null;\n\nexport function tuiAppearance(value: A | WritableSignal<A>): WritableSignal<A>;\nexport function tuiAppearance(value: Signal<A>): Signal<A>;\nexport function tuiAppearance(value: A | Signal<A>): Signal<A> {\n return tuiDirectiveBinding(TuiAppearance, 'appearance', value);\n}\n\nexport function tuiAppearanceState(value: S | WritableSignal<S>): WritableSignal<S>;\nexport function tuiAppearanceState(value: Signal<S>): Signal<S>;\nexport function tuiAppearanceState(value: S | Signal<S>): Signal<S> {\n return tuiDirectiveBinding(TuiAppearance, 'state', value);\n}\n\nexport function tuiAppearanceFocus(value: F | WritableSignal<F>): WritableSignal<F>;\nexport function tuiAppearanceFocus(value: Signal<F>): Signal<F>;\nexport function tuiAppearanceFocus(value: F | Signal<F>): Signal<F> {\n return tuiDirectiveBinding(TuiAppearance, 'focus', value);\n}\n\nexport function tuiAppearanceMode(value: M | WritableSignal<M>): WritableSignal<M>;\nexport function tuiAppearanceMode(value: Signal<M>): Signal<M>;\nexport function tuiAppearanceMode(value: M | Signal<M>): Signal<M> {\n return tuiDirectiveBinding(TuiAppearance, 'mode', value);\n}\n","import {Directive} from '@angular/core';\n\nimport {TuiAppearance} from './appearance.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: [\n 'tuiAppearance: appearance',\n 'tuiAppearanceState',\n 'tuiAppearanceFocus',\n 'tuiAppearanceMode',\n ],\n },\n ],\n})\nexport class TuiWithAppearance {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiAppearance"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-pipes-flag.mjs","sources":["../../../projects/core/pipes/flag/flag.pipe.ts","../../../projects/core/pipes/flag/taiga-ui-core-pipes-flag.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_ASSETS_PATH} from '@taiga-ui/core/tokens';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\n\n@Pipe({\n standalone: true,\n name: 'tuiFlag',\n})\nexport class TuiFlagPipe implements PipeTransform {\n private readonly staticPath = inject(TUI_ASSETS_PATH);\n\n public transform(countryIsoCode: TuiCountryIsoCode | string): string;\n public transform(\n countryIsoCode: TuiCountryIsoCode | string | undefined,\n ): string | null;\n public transform(countryIsoCode?: TuiCountryIsoCode | string | null): string | null;\n public transform(countryIsoCode?: TuiCountryIsoCode | string | null): string | null {\n if (!countryIsoCode) {\n return null;\n }\n\n return `${this.staticPath}/flags/${countryIsoCode.toLowerCase()}.svg`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAKA,MAIa,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAczD,KAAA;AAPU,IAAA,SAAS,CAAC,cAAkD,EAAA;QAC/D,IAAI,CAAC,cAAc,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,OAAA,EAAU,cAAc,CAAC,WAAW,EAAE,CAAA,IAAA,CAAM,CAAC;KACzE;+GAdQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,SAAS;AAClB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-pipes-flag.mjs","sources":["../../../projects/core/pipes/flag/flag.pipe.ts","../../../projects/core/pipes/flag/taiga-ui-core-pipes-flag.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_ASSETS_PATH} from '@taiga-ui/core/tokens';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\n\n@Pipe({\n standalone: true,\n name: 'tuiFlag',\n})\nexport class TuiFlagPipe implements PipeTransform {\n private readonly staticPath = inject(TUI_ASSETS_PATH);\n\n public transform(\n countryIsoCode: TuiCountryIsoCode | (Record<never, never> & string),\n ): string;\n public transform(\n countryIsoCode: TuiCountryIsoCode | (Record<never, never> & string) | undefined,\n ): string | null;\n public transform(\n countryIsoCode?: TuiCountryIsoCode | (Record<never, never> & string) | null,\n ): string | null;\n public transform(\n countryIsoCode?: TuiCountryIsoCode | (Record<never, never> & string) | null,\n ): string | null {\n if (!countryIsoCode) {\n return null;\n }\n\n return `${this.staticPath}/flags/${countryIsoCode.toLowerCase()}.svg`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAKA,MAIa,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAoBzD,KAAA;AATU,IAAA,SAAS,CACZ,cAA2E,EAAA;QAE3E,IAAI,CAAC,cAAc,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,OAAA,EAAU,cAAc,CAAC,WAAW,EAAE,CAAA,IAAA,CAAM,CAAC;KACzE;+GApBQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,SAAS;AAClB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "4.7.0-canary.2dd3ca2",
3
+ "version": "4.7.0-canary.88a8f5b",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -311,9 +311,9 @@
311
311
  "@angular/router": ">=16.0.0",
312
312
  "@ng-web-apis/common": "^4.6.0",
313
313
  "@ng-web-apis/mutation-observer": "^4.6.0",
314
- "@taiga-ui/cdk": "^4.7.0-canary.2dd3ca2",
314
+ "@taiga-ui/cdk": "^4.7.0-canary.88a8f5b",
315
315
  "@taiga-ui/event-plugins": "^4.2.0",
316
- "@taiga-ui/i18n": "^4.7.0-canary.2dd3ca2",
316
+ "@taiga-ui/i18n": "^4.7.0-canary.88a8f5b",
317
317
  "@taiga-ui/polymorpheus": "^4.7.1",
318
318
  "rxjs": ">=7.0.0"
319
319
  },
@@ -3,9 +3,9 @@ import type { TuiCountryIsoCode } from '@taiga-ui/i18n/types';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiFlagPipe implements PipeTransform {
5
5
  private readonly staticPath;
6
- transform(countryIsoCode: TuiCountryIsoCode | string): string;
7
- transform(countryIsoCode: TuiCountryIsoCode | string | undefined): string | null;
8
- transform(countryIsoCode?: TuiCountryIsoCode | string | null): string | null;
6
+ transform(countryIsoCode: TuiCountryIsoCode | (Record<never, never> & string)): string;
7
+ transform(countryIsoCode: TuiCountryIsoCode | (Record<never, never> & string) | undefined): string | null;
8
+ transform(countryIsoCode?: TuiCountryIsoCode | (Record<never, never> & string) | null): string | null;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiFlagPipe, never>;
10
10
  static ɵpipe: i0.ɵɵPipeDeclaration<TuiFlagPipe, "tuiFlag", true>;
11
11
  }
@@ -27,6 +27,10 @@
27
27
  outline: 0.125rem solid transparent;
28
28
  outline-offset: -0.125rem;
29
29
 
30
+ &.tui-appearance-initializing {
31
+ transition: none !important;
32
+ }
33
+
30
34
  .appearance-focus({
31
35
  outline-color: var(--tui-border-focus);
32
36
  });