@taiga-ui/kit 4.19.0 → 4.20.0-canary.bd53957

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/components/checkbox/checkbox.component.d.ts +1 -0
  2. package/components/index.d.ts +2 -0
  3. package/components/input-number/index.d.ts +2 -0
  4. package/components/input-number/input-number.component.d.ts +38 -0
  5. package/components/input-number/input-number.options.d.ts +15 -0
  6. package/components/input-pin/index.d.ts +1 -0
  7. package/components/input-pin/input-pin.component.d.ts +18 -0
  8. package/components/line-clamp/line-clamp.component.d.ts +0 -2
  9. package/components/pulse/pulse.component.d.ts +6 -1
  10. package/components/radio/radio.component.d.ts +5 -2
  11. package/components/switch/switch.component.d.ts +5 -2
  12. package/directives/tooltip/tooltip.directive.d.ts +3 -1
  13. package/esm2022/components/avatar/avatar.component.mjs +3 -3
  14. package/esm2022/components/checkbox/checkbox.component.mjs +5 -4
  15. package/esm2022/components/chip/chip.directive.mjs +2 -2
  16. package/esm2022/components/confirm/confirm.component.mjs +3 -3
  17. package/esm2022/components/files/files/files.component.mjs +4 -4
  18. package/esm2022/components/files/input-files/input-files.component.mjs +3 -3
  19. package/esm2022/components/index.mjs +3 -1
  20. package/esm2022/components/input-number/index.mjs +3 -0
  21. package/esm2022/components/input-number/input-number.component.mjs +207 -0
  22. package/esm2022/components/input-number/input-number.options.mjs +15 -0
  23. package/esm2022/components/input-number/taiga-ui-kit-components-input-number.mjs +5 -0
  24. package/esm2022/components/input-password/input-password.component.mjs +1 -1
  25. package/esm2022/components/input-pin/index.mjs +2 -0
  26. package/esm2022/components/input-pin/input-pin.component.mjs +64 -0
  27. package/esm2022/components/input-pin/taiga-ui-kit-components-input-pin.mjs +5 -0
  28. package/esm2022/components/line-clamp/line-clamp.component.mjs +7 -22
  29. package/esm2022/components/pin/pin.directive.mjs +2 -2
  30. package/esm2022/components/preview/preview-dialog/preview-dialog.component.mjs +3 -3
  31. package/esm2022/components/pulse/pulse.component.mjs +20 -7
  32. package/esm2022/components/radio/radio.component.mjs +11 -2
  33. package/esm2022/components/switch/switch.component.mjs +11 -2
  34. package/esm2022/directives/chevron/chevron.directive.mjs +2 -2
  35. package/esm2022/directives/tooltip/tooltip.directive.mjs +10 -6
  36. package/fesm2022/taiga-ui-kit-components-avatar.mjs +2 -2
  37. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +4 -3
  39. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  41. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -2
  43. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-kit-components-files.mjs +5 -5
  45. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-kit-components-input-number.mjs +227 -0
  47. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -0
  48. package/fesm2022/taiga-ui-kit-components-input-password.mjs +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +70 -0
  51. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -0
  52. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +6 -21
  53. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
  55. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs +2 -2
  57. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-preview.mjs +2 -2
  59. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-pulse.mjs +19 -6
  61. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-kit-components-radio.mjs +10 -1
  63. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-kit-components-switch.mjs +10 -1
  65. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-kit-components.mjs +2 -0
  67. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
  69. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +9 -5
  71. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  72. package/package.json +26 -14
@@ -0,0 +1,70 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, inject, computed, Component, ChangeDetectionStrategy, Input } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import * as i1 from '@maskito/angular';
5
+ import { MaskitoDirective } from '@maskito/angular';
6
+ import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
7
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
+ import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
9
+ import { tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
10
+ import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
11
+ import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
12
+ import { tuiMaskito } from '@taiga-ui/kit/utils';
13
+
14
+ class TuiInputPin {
15
+ constructor() {
16
+ this.el = tuiInjectElement();
17
+ this.mask = signal(/^\d+$/);
18
+ this.appearance = inject(TUI_TEXTFIELD_OPTIONS).appearance;
19
+ this.control = inject(NgControl);
20
+ this.maskito = tuiMaskito(computed(() => ({
21
+ mask: this.mask(),
22
+ overwriteMode: 'replace',
23
+ })));
24
+ }
25
+ set maskSetter(mask) {
26
+ this.mask.set(tuiIsString(mask) ? new RegExp(mask) : mask);
27
+ }
28
+ onClick(index) {
29
+ this.el.focus();
30
+ this.el.setSelectionRange(index, index + 1);
31
+ }
32
+ onSelection() {
33
+ if (this.el.selectionStart === this.el.maxLength) {
34
+ this.el.setSelectionRange(this.el.maxLength - 1, this.el.maxLength);
35
+ }
36
+ }
37
+ onArrow() {
38
+ if (this.el.selectionStart === this.el.maxLength - 1 &&
39
+ this.el.selectionEnd === this.el.maxLength) {
40
+ this.el.setSelectionRange(this.el.maxLength - 2, this.el.maxLength - 2);
41
+ }
42
+ }
43
+ isFocused(index) {
44
+ return (tuiIsNativeFocused(this.el) &&
45
+ (this.el.selectionStart === index ||
46
+ (this.el.selectionStart === this.el.maxLength &&
47
+ index === this.el.maxLength - 1)));
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPin, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPin, isStandalone: true, selector: "input[tuiInputPin]", inputs: { maskSetter: ["mask", "maskSetter"] }, host: { attributes: { "inputmode": "numeric", "spellcheck": "false" }, listeners: { "selectionchange": "onSelection()", "keydown.arrowLeft": "onArrow()" } }, hostDirectives: [{ directive: i1.MaskitoDirective }], ngImport: i0, template: "<div\n *tuiTextfieldContent\n class=\"t-wrapper\"\n>\n <label\n *tuiRepeatTimes=\"let index of el.maxLength\"\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"isFocused(index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (mousedown.prevent)=\"onClick(index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"el.value[index]\"\n [textContent]=\"el.value[index] || el.placeholder[index]\"\n ></span>\n </label>\n</div>\n", styles: ["@keyframes blink{50%{opacity:0}}:host{color:transparent;caret-color:transparent;background:transparent;border:none;outline:none}:host::selection{background:transparent}:host::placeholder{color:transparent}:host ::ng-deep+.t-content .t-clear{display:none!important}.t-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;gap:inherit;border-radius:inherit}.t-item{display:flex;flex:1;align-items:center;justify-content:center;border-radius:inherit;pointer-events:auto;cursor:text}.t-item[data-focus=true] .t-value_filled{background:var(--tui-service-selection-background)}.t-item[data-focus=true] .t-value_filled:before{display:none}.t-item[data-focus=true] .t-value:before{content:\"\";block-size:1em;border-left:1px solid var(--tui-text-primary);animation:blink 1s steps(1) infinite}.t-value{color:var(--tui-text-tertiary)}.t-value_filled{color:var(--tui-text-primary)}\n"], dependencies: [{ kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPin, decorators: [{
53
+ type: Component,
54
+ args: [{ standalone: true, selector: 'input[tuiInputPin]', imports: [TuiAppearance, TuiRepeatTimes, TuiTextfieldContent], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [MaskitoDirective], host: {
55
+ inputmode: 'numeric',
56
+ spellcheck: 'false',
57
+ '(selectionchange)': 'onSelection()',
58
+ '(keydown.arrowLeft)': 'onArrow()',
59
+ }, template: "<div\n *tuiTextfieldContent\n class=\"t-wrapper\"\n>\n <label\n *tuiRepeatTimes=\"let index of el.maxLength\"\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"isFocused(index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (mousedown.prevent)=\"onClick(index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"el.value[index]\"\n [textContent]=\"el.value[index] || el.placeholder[index]\"\n ></span>\n </label>\n</div>\n", styles: ["@keyframes blink{50%{opacity:0}}:host{color:transparent;caret-color:transparent;background:transparent;border:none;outline:none}:host::selection{background:transparent}:host::placeholder{color:transparent}:host ::ng-deep+.t-content .t-clear{display:none!important}.t-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;gap:inherit;border-radius:inherit}.t-item{display:flex;flex:1;align-items:center;justify-content:center;border-radius:inherit;pointer-events:auto;cursor:text}.t-item[data-focus=true] .t-value_filled{background:var(--tui-service-selection-background)}.t-item[data-focus=true] .t-value_filled:before{display:none}.t-item[data-focus=true] .t-value:before{content:\"\";block-size:1em;border-left:1px solid var(--tui-text-primary);animation:blink 1s steps(1) infinite}.t-value{color:var(--tui-text-tertiary)}.t-value_filled{color:var(--tui-text-primary)}\n"] }]
60
+ }], propDecorators: { maskSetter: [{
61
+ type: Input,
62
+ args: ['mask']
63
+ }] } });
64
+
65
+ /**
66
+ * Generated bundle index. Do not edit.
67
+ */
68
+
69
+ export { TuiInputPin };
70
+ //# sourceMappingURL=taiga-ui-kit-components-input-pin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-components-input-pin.mjs","sources":["../../../projects/kit/components/input-pin/input-pin.component.ts","../../../projects/kit/components/input-pin/input-pin.template.html","../../../projects/kit/components/input-pin/taiga-ui-kit-components-input-pin.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport type {MaskitoMask} from '@maskito/core';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n TuiTextfieldContent,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputPin]',\n imports: [TuiAppearance, TuiRepeatTimes, TuiTextfieldContent],\n templateUrl: './input-pin.template.html',\n styleUrls: ['./input-pin.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [MaskitoDirective],\n host: {\n inputmode: 'numeric',\n spellcheck: 'false',\n '(selectionchange)': 'onSelection()',\n '(keydown.arrowLeft)': 'onArrow()',\n },\n})\nexport class TuiInputPin {\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly mask = signal<MaskitoMask>(/^\\d+$/);\n protected readonly appearance = inject(TUI_TEXTFIELD_OPTIONS).appearance;\n protected readonly control = inject(NgControl);\n\n protected readonly maskito = tuiMaskito(\n computed(() => ({\n mask: this.mask(),\n overwriteMode: 'replace',\n })),\n );\n\n @Input('mask')\n public set maskSetter(mask: MaskitoMask | string) {\n this.mask.set(tuiIsString(mask) ? new RegExp(mask) : mask);\n }\n\n public onClick(index: number): void {\n this.el.focus();\n this.el.setSelectionRange(index, index + 1);\n }\n\n public onSelection(): void {\n if (this.el.selectionStart === this.el.maxLength) {\n this.el.setSelectionRange(this.el.maxLength - 1, this.el.maxLength);\n }\n }\n\n public onArrow(): void {\n if (\n this.el.selectionStart === this.el.maxLength - 1 &&\n this.el.selectionEnd === this.el.maxLength\n ) {\n this.el.setSelectionRange(this.el.maxLength - 2, this.el.maxLength - 2);\n }\n }\n\n public isFocused(index: number): boolean {\n return (\n tuiIsNativeFocused(this.el) &&\n (this.el.selectionStart === index ||\n (this.el.selectionStart === this.el.maxLength &&\n index === this.el.maxLength - 1))\n );\n }\n}\n","<div\n *tuiTextfieldContent\n class=\"t-wrapper\"\n>\n <label\n *tuiRepeatTimes=\"let index of el.maxLength\"\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"isFocused(index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (mousedown.prevent)=\"onClick(index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"el.value[index]\"\n [textContent]=\"el.value[index] || el.placeholder[index]\"\n ></span>\n </label>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,12 @@
1
- import { AsyncPipe } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { Component, ChangeDetectionStrategy, inject, Directive, ChangeDetectorRef, NgZone, signal, ElementRef, ViewChild, Input, Output } from '@angular/core';
4
- import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
5
- import { WaResizeObserver } from '@ng-web-apis/resize-observer';
6
- import { tuiZonefree, tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
2
+ import { Component, ChangeDetectionStrategy, inject, Directive, ChangeDetectorRef, signal, ElementRef, ViewChild, Input, Output } from '@angular/core';
3
+ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
7
5
  import { tuiInjectElement, tuiIsCurrentTarget } from '@taiga-ui/cdk/utils/dom';
8
6
  import * as i1 from '@taiga-ui/core/directives/hint';
9
7
  import { TuiHintComponent, TUI_HINT_PROVIDERS, TuiHintDirective, TUI_HINT_COMPONENT, TuiHint } from '@taiga-ui/core/directives/hint';
10
8
  import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
11
- import { BehaviorSubject, Subject, timer, startWith, pairwise, switchMap, of, filter, map, distinctUntilChanged } from 'rxjs';
9
+ import { BehaviorSubject, Subject, startWith, pairwise, switchMap, of, filter, map, distinctUntilChanged } from 'rxjs';
12
10
  import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
13
11
  import { tuiFadeIn } from '@taiga-ui/core/animations';
14
12
  import { TuiPositionAccessor, tuiAsPositionAccessor } from '@taiga-ui/core/classes';
@@ -69,15 +67,11 @@ class TuiLineClamp {
69
67
  this.options = inject(TUI_LINE_CLAMP_OPTIONS);
70
68
  this.el = tuiInjectElement();
71
69
  this.cd = inject(ChangeDetectorRef);
72
- this.zone = inject(NgZone);
73
70
  this.linesLimit$ = new BehaviorSubject(1);
74
71
  this.isOverflown$ = new Subject();
75
72
  this.initialized = signal(false);
76
73
  this.maxHeight = signal(0);
77
74
  this.height = signal(0);
78
- this.$ = timer(0)
79
- .pipe(tuiZonefree(this.zone), takeUntilDestroyed())
80
- .subscribe(() => this.initialized.set(true));
81
75
  this.lineClamp = toSignal(this.linesLimit$.pipe(startWith(1), pairwise(), switchMap(([prev, next]) => next >= prev
82
76
  ? of(next)
83
77
  : tuiTypedFromEvent(this.el, 'transitionend').pipe(filter(tuiIsCurrentTarget), map(() => next))), takeUntilDestroyed()), { initialValue: 0 });
@@ -113,9 +107,7 @@ class TuiLineClamp {
113
107
  if (this.outlet) {
114
108
  this.height.set(this.outlet.nativeElement.scrollHeight + 4);
115
109
  }
116
- if (this.initialized()) {
117
- this.maxHeight.set(this.lineHeight * this.linesLimit$.value);
118
- }
110
+ this.maxHeight.set(this.lineHeight * this.linesLimit$.value);
119
111
  }
120
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiLineClamp, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
113
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiLineClamp, isStandalone: true, selector: "tui-line-clamp", inputs: { lineHeight: "lineHeight", content: "content", linesLimit: "linesLimit" }, outputs: { overflownChange: "overflownChange" }, host: { listeners: { "transitionend": "updateView()", "mouseenter": "updateView()", "resize": "updateView()" }, properties: { "style.height.px": "height()", "style.max-height.px": "maxHeight()", "class._initialized": "initialized()" } }, providers: [
@@ -127,14 +119,7 @@ class TuiLineClamp {
127
119
  }
128
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiLineClamp, decorators: [{
129
121
  type: Component,
130
- args: [{ standalone: true, selector: 'tui-line-clamp', imports: [
131
- AsyncPipe,
132
- PolymorpheusOutlet,
133
- PolymorpheusTemplate,
134
- TuiHint,
135
- TuiLineClampPositionDirective,
136
- WaResizeObserver,
137
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
122
+ args: [{ standalone: true, selector: 'tui-line-clamp', imports: [PolymorpheusOutlet, TuiHint, TuiLineClampPositionDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
138
123
  {
139
124
  provide: TUI_HINT_COMPONENT,
140
125
  useValue: TuiLineClampBox,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-line-clamp.mjs","sources":["../../../projects/kit/components/line-clamp/line-clamp.options.ts","../../../projects/kit/components/line-clamp/line-clamp-box.component.ts","../../../projects/kit/components/line-clamp/line-clamp-position.directive.ts","../../../projects/kit/components/line-clamp/line-clamp.component.ts","../../../projects/kit/components/line-clamp/line-clamp.template.html","../../../projects/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiLineClampOptions {\n readonly showHint: boolean;\n}\n\nexport const TUI_LINE_CLAMP_DEFAULT_OPTIONS: TuiLineClampOptions = {\n showHint: true,\n};\n\n/**\n * Default parameters for LineClamp component\n */\nexport const TUI_LINE_CLAMP_OPTIONS = tuiCreateToken(TUI_LINE_CLAMP_DEFAULT_OPTIONS);\n\nexport function tuiLineClampOptionsProvider(\n options: Partial<TuiLineClampOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_LINE_CLAMP_OPTIONS,\n options,\n TUI_LINE_CLAMP_DEFAULT_OPTIONS,\n );\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TUI_HINT_PROVIDERS, TuiHintComponent} from '@taiga-ui/core/directives/hint';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n imports: [PolymorpheusOutlet, PolymorpheusTemplate],\n template: `\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n `,\n styleUrls: ['./line-clamp-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_HINT_PROVIDERS,\n animations: [tuiFadeIn],\n host: {\n '[style.min-width.px]': 'width',\n },\n})\nexport class TuiLineClampBox extends TuiHintComponent {\n protected get width(): number {\n return this.accessor.getClientRect().width;\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport type {TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n standalone: true,\n selector: '[tuiLineClampPosition]',\n providers: [tuiAsPositionAccessor(TuiLineClampPositionDirective)],\n})\nexport class TuiLineClampPositionDirective extends TuiPositionAccessor {\n private readonly accessor = inject<TuiRectAccessor>(TuiHintDirective);\n public readonly type = 'hint';\n\n public getPosition(): TuiPoint {\n const {top, left} = this.accessor.getClientRect();\n\n return [top, left];\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport type {AfterViewInit, DoCheck} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n Input,\n NgZone,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiIsCurrentTarget} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_HINT_COMPONENT,\n TuiHint,\n TuiHintDirective,\n} from '@taiga-ui/core/directives/hint';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n filter,\n map,\n of,\n pairwise,\n startWith,\n Subject,\n switchMap,\n timer,\n} from 'rxjs';\n\nimport {TUI_LINE_CLAMP_OPTIONS} from './line-clamp.options';\nimport {TuiLineClampBox} from './line-clamp-box.component';\nimport {TuiLineClampPositionDirective} from './line-clamp-position.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-line-clamp',\n imports: [\n AsyncPipe,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiHint,\n TuiLineClampPositionDirective,\n WaResizeObserver,\n ],\n templateUrl: './line-clamp.template.html',\n styleUrls: ['./line-clamp.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_HINT_COMPONENT,\n useValue: TuiLineClampBox,\n },\n ],\n host: {\n '[style.height.px]': 'height()',\n '[style.max-height.px]': 'maxHeight()',\n '[class._initialized]': 'initialized()',\n '(transitionend)': 'updateView()',\n '(mouseenter)': 'updateView()',\n '(resize)': 'updateView()',\n },\n})\nexport class TuiLineClamp implements DoCheck, AfterViewInit {\n @ViewChild(TuiHintDirective, {read: ElementRef})\n private readonly outlet?: ElementRef<HTMLElement>;\n\n private readonly options = inject(TUI_LINE_CLAMP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly cd = inject(ChangeDetectorRef);\n private readonly zone: NgZone = inject(NgZone);\n private readonly linesLimit$ = new BehaviorSubject(1);\n private readonly isOverflown$ = new Subject<boolean>();\n protected initialized = signal(false);\n protected maxHeight = signal(0);\n protected height = signal(0);\n\n protected readonly $ = timer(0)\n .pipe(tuiZonefree(this.zone), takeUntilDestroyed())\n .subscribe(() => this.initialized.set(true));\n\n protected lineClamp = toSignal(\n this.linesLimit$.pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : tuiTypedFromEvent(this.el, 'transitionend').pipe(\n filter(tuiIsCurrentTarget),\n map(() => next),\n ),\n ),\n takeUntilDestroyed(),\n ),\n {initialValue: 0},\n );\n\n @Input()\n public lineHeight = 24;\n\n @Input()\n public content: PolymorpheusContent;\n\n @Output()\n public readonly overflownChange: Observable<boolean> =\n this.isOverflown$.pipe(distinctUntilChanged());\n\n @Input()\n public set linesLimit(linesLimit: number) {\n this.linesLimit$.next(linesLimit);\n }\n\n public ngDoCheck(): void {\n this.update();\n this.isOverflown$.next(this.overflown);\n }\n\n public ngAfterViewInit(): void {\n this.initialized.set(true);\n }\n\n protected get overflown(): boolean {\n if (!this.outlet) {\n return false;\n }\n\n const {scrollHeight, scrollWidth} = this.outlet.nativeElement;\n const {clientHeight, clientWidth} = this.el;\n\n // 4px buffer for IE/Edge incorrectly rounding scrollHeight\n return scrollHeight - clientHeight > 4 || scrollWidth - clientWidth > 0;\n }\n\n protected get computedContent(): PolymorpheusContent {\n return this.options.showHint && this.overflown ? this.content : '';\n }\n\n protected updateView(): void {\n this.cd.detectChanges();\n }\n\n private update(): void {\n if (this.outlet) {\n this.height.set(this.outlet.nativeElement.scrollHeight + 4);\n }\n\n if (this.initialized()) {\n this.maxHeight.set(this.lineHeight * this.linesLimit$.value);\n }\n }\n}\n","<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-line-clamp.mjs","sources":["../../../projects/kit/components/line-clamp/line-clamp.options.ts","../../../projects/kit/components/line-clamp/line-clamp-box.component.ts","../../../projects/kit/components/line-clamp/line-clamp-position.directive.ts","../../../projects/kit/components/line-clamp/line-clamp.component.ts","../../../projects/kit/components/line-clamp/line-clamp.template.html","../../../projects/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiLineClampOptions {\n readonly showHint: boolean;\n}\n\nexport const TUI_LINE_CLAMP_DEFAULT_OPTIONS: TuiLineClampOptions = {\n showHint: true,\n};\n\n/**\n * Default parameters for LineClamp component\n */\nexport const TUI_LINE_CLAMP_OPTIONS = tuiCreateToken(TUI_LINE_CLAMP_DEFAULT_OPTIONS);\n\nexport function tuiLineClampOptionsProvider(\n options: Partial<TuiLineClampOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_LINE_CLAMP_OPTIONS,\n options,\n TUI_LINE_CLAMP_DEFAULT_OPTIONS,\n );\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TUI_HINT_PROVIDERS, TuiHintComponent} from '@taiga-ui/core/directives/hint';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n imports: [PolymorpheusOutlet, PolymorpheusTemplate],\n template: `\n <ng-container *polymorpheusOutlet=\"content() as text\">{{ text }}</ng-container>\n `,\n styleUrls: ['./line-clamp-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_HINT_PROVIDERS,\n animations: [tuiFadeIn],\n host: {\n '[style.min-width.px]': 'width',\n },\n})\nexport class TuiLineClampBox extends TuiHintComponent {\n protected get width(): number {\n return this.accessor.getClientRect().width;\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport type {TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n standalone: true,\n selector: '[tuiLineClampPosition]',\n providers: [tuiAsPositionAccessor(TuiLineClampPositionDirective)],\n})\nexport class TuiLineClampPositionDirective extends TuiPositionAccessor {\n private readonly accessor = inject<TuiRectAccessor>(TuiHintDirective);\n public readonly type = 'hint';\n\n public getPosition(): TuiPoint {\n const {top, left} = this.accessor.getClientRect();\n\n return [top, left];\n }\n}\n","import type {AfterViewInit, DoCheck} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n Input,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiIsCurrentTarget} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_HINT_COMPONENT,\n TuiHint,\n TuiHintDirective,\n} from '@taiga-ui/core/directives/hint';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n filter,\n map,\n of,\n pairwise,\n startWith,\n Subject,\n switchMap,\n} from 'rxjs';\n\nimport {TUI_LINE_CLAMP_OPTIONS} from './line-clamp.options';\nimport {TuiLineClampBox} from './line-clamp-box.component';\nimport {TuiLineClampPositionDirective} from './line-clamp-position.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-line-clamp',\n imports: [PolymorpheusOutlet, TuiHint, TuiLineClampPositionDirective],\n templateUrl: './line-clamp.template.html',\n styleUrls: ['./line-clamp.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_HINT_COMPONENT,\n useValue: TuiLineClampBox,\n },\n ],\n host: {\n '[style.height.px]': 'height()',\n '[style.max-height.px]': 'maxHeight()',\n '[class._initialized]': 'initialized()',\n '(transitionend)': 'updateView()',\n '(mouseenter)': 'updateView()',\n '(resize)': 'updateView()',\n },\n})\nexport class TuiLineClamp implements DoCheck, AfterViewInit {\n @ViewChild(TuiHintDirective, {read: ElementRef})\n private readonly outlet?: ElementRef<HTMLElement>;\n\n private readonly options = inject(TUI_LINE_CLAMP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly cd = inject(ChangeDetectorRef);\n private readonly linesLimit$ = new BehaviorSubject(1);\n private readonly isOverflown$ = new Subject<boolean>();\n protected initialized = signal(false);\n protected maxHeight = signal(0);\n protected height = signal(0);\n\n protected lineClamp = toSignal(\n this.linesLimit$.pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : tuiTypedFromEvent(this.el, 'transitionend').pipe(\n filter(tuiIsCurrentTarget),\n map(() => next),\n ),\n ),\n takeUntilDestroyed(),\n ),\n {initialValue: 0},\n );\n\n @Input()\n public lineHeight = 24;\n\n @Input()\n public content: PolymorpheusContent;\n\n @Output()\n public readonly overflownChange: Observable<boolean> =\n this.isOverflown$.pipe(distinctUntilChanged());\n\n @Input()\n public set linesLimit(linesLimit: number) {\n this.linesLimit$.next(linesLimit);\n }\n\n public ngDoCheck(): void {\n this.update();\n this.isOverflown$.next(this.overflown);\n }\n\n public ngAfterViewInit(): void {\n this.initialized.set(true);\n }\n\n protected get overflown(): boolean {\n if (!this.outlet) {\n return false;\n }\n\n const {scrollHeight, scrollWidth} = this.outlet.nativeElement;\n const {clientHeight, clientWidth} = this.el;\n\n // 4px buffer for IE/Edge incorrectly rounding scrollHeight\n return scrollHeight - clientHeight > 4 || scrollWidth - clientWidth > 0;\n }\n\n protected get computedContent(): PolymorpheusContent {\n return this.options.showHint && this.overflown ? this.content : '';\n }\n\n protected updateView(): void {\n this.cd.detectChanges();\n }\n\n private update(): void {\n if (this.outlet) {\n this.height.set(this.outlet.nativeElement.scrollHeight + 4);\n }\n\n this.maxHeight.set(this.lineHeight * this.linesLimit$.value);\n }\n}\n","<div\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.word-break]=\"lineClamp() > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class TuiPinStyles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPinStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPinStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-pin" }, ngImport: i0, template: '', isInline: true, styles: ["tui-pin,[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}tui-pin:-webkit-any(a,button,select,textarea,input,label),[tuiPin]:-webkit-any(a,button,select,textarea,input,label){cursor:pointer}tui-pin:-moz-any(a,button,select,textarea,input,label),[tuiPin]:-moz-any(a,button,select,textarea,input,label){cursor:pointer}tui-pin:empty,[tuiPin]:empty{--t-size: .75rem}tui-pin:empty:before,[tuiPin]:empty:before{display:none}tui-pin>input,[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}tui-pin>img,[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}tui-pin>tui-icon,[tuiPin]>tui-icon,tui-pin>tui-svg,[tuiPin]>tui-svg{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1.25rem;block-size:1.25rem;align-self:center}tui-pin:has(:checked),[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin:has(:checked)>img,[tuiPin]:has(:checked)>img{padding:.125rem}tui-pin:has(:checked)>tui-icon,[tuiPin]:has(:checked)>tui-icon,tui-pin:has(:checked)>tui-svg,[tuiPin]:has(:checked)>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin:has(:checked):before,[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin:has(:checked):after,[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}tui-pin._open,[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin._open>img,[tuiPin]._open>img{padding:.125rem}tui-pin._open>tui-icon,[tuiPin]._open>tui-icon,tui-pin._open>tui-svg,[tuiPin]._open>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin._open:before,[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin._open:after,[tuiPin]._open:after{top:4.5rem;opacity:1}tui-pin:before,[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;-webkit-mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}tui-pin:after,[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPinStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-pin" }, ngImport: i0, template: '', isInline: true, styles: ["tui-pin,[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}tui-pin:matches(a,button,select,textarea,input,label),[tuiPin]:matches(a,button,select,textarea,input,label){cursor:pointer}tui-pin:is(a,button,select,textarea,input,label),[tuiPin]:is(a,button,select,textarea,input,label){cursor:pointer}tui-pin:empty,[tuiPin]:empty{--t-size: .75rem}tui-pin:empty:before,[tuiPin]:empty:before{display:none}tui-pin>input,[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}tui-pin>img,[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}tui-pin>tui-icon,[tuiPin]>tui-icon,tui-pin>tui-svg,[tuiPin]>tui-svg{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1.25rem;block-size:1.25rem;align-self:center}tui-pin:has(:checked),[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin:has(:checked)>img,[tuiPin]:has(:checked)>img{padding:.125rem}tui-pin:has(:checked)>tui-icon,[tuiPin]:has(:checked)>tui-icon,tui-pin:has(:checked)>tui-svg,[tuiPin]:has(:checked)>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin:has(:checked):before,[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin:has(:checked):after,[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}tui-pin._open,[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin._open>img,[tuiPin]._open>img{padding:.125rem}tui-pin._open>tui-icon,[tuiPin]._open>tui-icon,tui-pin._open>tui-svg,[tuiPin]._open>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin._open:before,[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin._open:after,[tuiPin]._open:after{top:4.5rem;opacity:1}tui-pin:before,[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;-webkit-mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}tui-pin:after,[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPinStyles, decorators: [{
10
10
  type: Component,
11
11
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
12
  class: 'tui-pin',
13
- }, styles: ["tui-pin,[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}tui-pin:-webkit-any(a,button,select,textarea,input,label),[tuiPin]:-webkit-any(a,button,select,textarea,input,label){cursor:pointer}tui-pin:-moz-any(a,button,select,textarea,input,label),[tuiPin]:-moz-any(a,button,select,textarea,input,label){cursor:pointer}tui-pin:empty,[tuiPin]:empty{--t-size: .75rem}tui-pin:empty:before,[tuiPin]:empty:before{display:none}tui-pin>input,[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}tui-pin>img,[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}tui-pin>tui-icon,[tuiPin]>tui-icon,tui-pin>tui-svg,[tuiPin]>tui-svg{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1.25rem;block-size:1.25rem;align-self:center}tui-pin:has(:checked),[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin:has(:checked)>img,[tuiPin]:has(:checked)>img{padding:.125rem}tui-pin:has(:checked)>tui-icon,[tuiPin]:has(:checked)>tui-icon,tui-pin:has(:checked)>tui-svg,[tuiPin]:has(:checked)>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin:has(:checked):before,[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin:has(:checked):after,[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}tui-pin._open,[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin._open>img,[tuiPin]._open>img{padding:.125rem}tui-pin._open>tui-icon,[tuiPin]._open>tui-icon,tui-pin._open>tui-svg,[tuiPin]._open>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin._open:before,[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin._open:after,[tuiPin]._open:after{top:4.5rem;opacity:1}tui-pin:before,[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;-webkit-mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}tui-pin:after,[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"] }]
13
+ }, styles: ["tui-pin,[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}tui-pin:matches(a,button,select,textarea,input,label),[tuiPin]:matches(a,button,select,textarea,input,label){cursor:pointer}tui-pin:is(a,button,select,textarea,input,label),[tuiPin]:is(a,button,select,textarea,input,label){cursor:pointer}tui-pin:empty,[tuiPin]:empty{--t-size: .75rem}tui-pin:empty:before,[tuiPin]:empty:before{display:none}tui-pin>input,[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}tui-pin>img,[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}tui-pin>tui-icon,[tuiPin]>tui-icon,tui-pin>tui-svg,[tuiPin]>tui-svg{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:1.25rem;block-size:1.25rem;align-self:center}tui-pin:has(:checked),[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin:has(:checked)>img,[tuiPin]:has(:checked)>img{padding:.125rem}tui-pin:has(:checked)>tui-icon,[tuiPin]:has(:checked)>tui-icon,tui-pin:has(:checked)>tui-svg,[tuiPin]:has(:checked)>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin:has(:checked):before,[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin:has(:checked):after,[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}tui-pin._open,[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-top:-2.75rem}tui-pin._open>img,[tuiPin]._open>img{padding:.125rem}tui-pin._open>tui-icon,[tuiPin]._open>tui-icon,tui-pin._open>tui-svg,[tuiPin]._open>tui-svg{inline-size:2.125rem;block-size:2.125rem}tui-pin._open:before,[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}tui-pin._open:after,[tuiPin]._open:after{top:4.5rem;opacity:1}tui-pin:before,[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;-webkit-mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}tui-pin:after,[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"] }]
14
14
  }] });
15
15
  class TuiPin {
16
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/pin.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-pin',\n },\n})\nclass TuiPinStyles {}\n\n@Directive({\n standalone: true,\n selector: 'tui-pin,[tuiPin]',\n host: {\n '[class._open]': 'open',\n },\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(TuiPinStyles);\n\n @Input()\n public open = false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASA,MAUM,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,6GARJ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,moJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,YAAY,EAAA,UAAA,EAAA,CAAA;kBAVjB,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,SAAS;AACnB,qBAAA,EAAA,MAAA,EAAA,CAAA,moJAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,MAAM,CAAA;AAPnB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAGlD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACvB,KAAA;+GALY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE,MAAM;AAC1B,qBAAA;AACJ,iBAAA,CAAA;8BAKU,IAAI,EAAA,CAAA;sBADV,KAAK;;;AC/BV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/pin.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-pin',\n },\n})\nclass TuiPinStyles {}\n\n@Directive({\n standalone: true,\n selector: 'tui-pin,[tuiPin]',\n host: {\n '[class._open]': 'open',\n },\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(TuiPinStyles);\n\n @Input()\n public open = false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASA,MAUM,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,6GARJ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,YAAY,EAAA,UAAA,EAAA,CAAA;kBAVjB,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,SAAS;AACnB,qBAAA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,MAAM,CAAA;AAPnB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAGlD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACvB,KAAA;+GALY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE,MAAM;AAC1B,qBAAA;AACJ,iBAAA,CAAA;8BAKU,IAAI,EAAA,CAAA;sBADV,KAAK;;;AC/BV;;AAEG;;;;"}
@@ -24,7 +24,7 @@ class TuiPreviewDialog {
24
24
  <ng-container *polymorpheusOutlet="context.content as text; context: context">
25
25
  {{ text }}
26
26
  </ng-container>
27
- `, isInline: true, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
27
+ `, isInline: true, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPreviewDialog, decorators: [{
30
30
  type: Component,
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
36
  '(document:keydown.esc)': 'context.$implicit.complete()',
37
37
  '[@tuiSlideInTop]': 'animation',
38
38
  '[@tuiFadeIn]': 'animation',
39
- }, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"] }]
39
+ }, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"] }]
40
40
  }] });
41
41
 
42
42
  class TuiPreviewDialogService extends TuiPopoverService {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-preview-preview-dialog.mjs","sources":["../../../projects/kit/components/preview/preview-dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/preview-dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/preview-dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/preview-dialog/taiga-ui-kit-components-preview-preview-dialog.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport type {TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {\n injectContext,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet, PolymorpheusTemplate],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrls: ['./preview-dialog.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideInTop, tuiFadeIn],\n host: {\n '(document:keydown.esc)': 'context.$implicit.complete()',\n '[@tuiSlideInTop]': 'animation',\n '[@tuiFadeIn]': 'animation',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPopover<void, void>>();\n protected readonly animation = {\n value: '',\n params: {\n start: '100vh',\n duration: tuiGetDuration(inject(TUI_ANIMATIONS_SPEED)),\n },\n };\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_DIALOGS} from '@taiga-ui/core/components/dialog';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () => new TuiPreviewDialogService(TUI_DIALOGS, TuiPreviewDialog),\n})\nexport class TuiPreviewDialogService extends TuiPopoverService<unknown> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiPreviewDialog]',\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n providers: [tuiAsPopover(TuiPreviewDialogService)],\n})\nexport class TuiPreviewDialogDirective extends TuiPopoverDirective<unknown> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAgBA,MAmBa,gBAAgB,CAAA;AAnB7B,IAAA,WAAA,GAAA;QAoBuB,IAAO,CAAA,OAAA,GAAG,aAAa,EAA0B,CAAC;AAClD,QAAA,IAAA,CAAA,SAAS,GAAG;AAC3B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACzD,aAAA;SACJ,CAAC;AACL,KAAA;+GATY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAff,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,8BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EALS,kBAAkB,EAShB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAO7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAnB5B,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,oBAAoB,EACrB,OAAA,EAAA,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EACzC,QAAA,EAAA,CAAA;;;;AAIT,IAAA,CAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,CAAC,aAAa,EAAE,SAAS,CAAC,EAChC,IAAA,EAAA;AACF,wBAAA,wBAAwB,EAAE,8BAA8B;AACxD,wBAAA,kBAAkB,EAAE,WAAW;AAC/B,wBAAA,cAAc,EAAE,WAAW;AAC9B,qBAAA,EAAA,MAAA,EAAA,CAAA,8+CAAA,CAAA,EAAA,CAAA;;;AC3BL,MAIa,uBAAwB,SAAQ,iBAA0B,CAAA;+GAA1D,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAHpB,UAAA,EAAA,MAAM,EACN,UAAA,EAAA,MAAM,IAAI,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEnE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;oBAClB,UAAU,EAAE,MAAM,4BAA4B,WAAW,EAAE,gBAAgB,CAAC;AAC/E,iBAAA,CAAA;;;ACHD,MAOa,yBAA0B,SAAQ,mBAA4B,CAAA;+GAA9D,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,+KAFvB,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEzC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,MAAM,EAAE,CAAC,wBAAwB,CAAC;oBAClC,OAAO,EAAE,CAAC,oCAAoC,CAAC;AAC/C,oBAAA,SAAS,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;AACrD,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-preview-preview-dialog.mjs","sources":["../../../projects/kit/components/preview/preview-dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/preview-dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/preview-dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/preview-dialog/taiga-ui-kit-components-preview-preview-dialog.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport type {TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {\n injectContext,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet, PolymorpheusTemplate],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrls: ['./preview-dialog.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideInTop, tuiFadeIn],\n host: {\n '(document:keydown.esc)': 'context.$implicit.complete()',\n '[@tuiSlideInTop]': 'animation',\n '[@tuiFadeIn]': 'animation',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPopover<void, void>>();\n protected readonly animation = {\n value: '',\n params: {\n start: '100vh',\n duration: tuiGetDuration(inject(TUI_ANIMATIONS_SPEED)),\n },\n };\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_DIALOGS} from '@taiga-ui/core/components/dialog';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () => new TuiPreviewDialogService(TUI_DIALOGS, TuiPreviewDialog),\n})\nexport class TuiPreviewDialogService extends TuiPopoverService<unknown> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiPreviewDialog]',\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n providers: [tuiAsPopover(TuiPreviewDialogService)],\n})\nexport class TuiPreviewDialogDirective extends TuiPopoverDirective<unknown> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -316,7 +316,7 @@ class TuiPreviewDialog {
316
316
  <ng-container *polymorpheusOutlet="context.content as text; context: context">
317
317
  {{ text }}
318
318
  </ng-container>
319
- `, isInline: true, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
319
+ `, isInline: true, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
320
320
  }
321
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPreviewDialog, decorators: [{
322
322
  type: Component,
@@ -328,7 +328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
328
328
  '(document:keydown.esc)': 'context.$implicit.complete()',
329
329
  '[@tuiSlideInTop]': 'animation',
330
330
  '[@tuiFadeIn]': 'animation',
331
- }, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"] }]
331
+ }, styles: ["tui-preview-dialog{inline-size:100%;block-size:100%}[tuiAppearance][data-appearance=preview-action]{background:#686868f5;color:#fff}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action][data-state=hover]{background:#9f9f9fdb}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=preview-action][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=hover]{background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:matches(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:is(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][data-state=active]{background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=preview-action][tuiWrapper][data-state=active]:hover{background:#9f9f9fbf}\n"] }]
332
332
  }] });
333
333
 
334
334
  class TuiPreviewDialogService extends TuiPopoverService {