@taiga-ui/addon-mobile 5.25.0 → 5.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ export declare class TuiBottomSheet {
6
6
  private readonly options;
7
7
  readonly stops: import("@angular/core").InputSignal<readonly string[]>;
8
8
  readonly bar: import("@angular/core").InputSignal<boolean>;
9
+ protected onResize(): void;
9
10
  protected onScroll(): void;
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiBottomSheet, never>;
11
12
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiBottomSheet, "tui-bottom-sheet", never, { "stops": { "alias": "stops"; "required": false; "isSignal": true; }; "bar": { "alias": "bar"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -2,3 +2,4 @@ export * from './sheet-dialog.component';
2
2
  export * from './sheet-dialog.directive';
3
3
  export * from './sheet-dialog.options';
4
4
  export * from './sheet-dialog.service';
5
+ export * from './sheet-dialog-close.directive';
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TuiSheetDialogClose {
3
+ private readonly el;
4
+ private readonly doc;
5
+ private readonly sheet;
6
+ private readonly scroll$;
7
+ private readonly untouched$;
8
+ private readonly swipe$;
9
+ private readonly release$;
10
+ readonly tuiSheetDialogClose: import("@angular/core").OutputRef<Event | number[] | null>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetDialogClose, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSheetDialogClose, "[tuiSheetDialogClose]", never, {}, { "tuiSheetDialogClose": "tuiSheetDialogClose"; }, never, never, true, never>;
13
+ }
@@ -4,19 +4,18 @@ import { type TuiSheetDialogOptions } from './sheet-dialog.options';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@taiga-ui/cdk/directives/animated";
6
6
  import * as i2 from "@taiga-ui/core/components/scrollbar";
7
- export declare class TuiSheetDialogComponent<I> {
7
+ import * as i3 from "./sheet-dialog-close.directive";
8
+ export declare class TuiSheetDialogComponent {
8
9
  private readonly stops;
9
10
  private readonly el;
10
- private pointers;
11
- protected readonly context: TuiPortalContext<TuiSheetDialogOptions<I>, any>;
11
+ protected readonly context: TuiPortalContext<TuiSheetDialogOptions<undefined>>;
12
12
  protected readonly close$: Subject<void>;
13
13
  protected interacted: boolean;
14
14
  protected readonly $: import("rxjs").Subscription;
15
15
  constructor();
16
+ get initial(): number;
16
17
  protected onResize(): void;
17
- protected onPointerChange(delta: number): void;
18
- private get initial();
19
18
  private close;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetDialogComponent<any>, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiSheetDialogComponent<any>, "tui-sheet-dialog", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiScrollRef; inputs: {}; outputs: {}; }]>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetDialogComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiSheetDialogComponent, "tui-sheet-dialog", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiScrollRef; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiSheetDialogClose; inputs: {}; outputs: { "tuiSheetDialogClose": "tuiSheetDialogClose"; }; }]>;
22
21
  }
@@ -19,6 +19,10 @@ class TuiBottomSheet {
19
19
  this.stops = input(this.options.stops);
20
20
  this.bar = input(this.options.bar);
21
21
  }
22
+ onResize() {
23
+ this.el.style.removeProperty('--t-height');
24
+ this.onScroll();
25
+ }
22
26
  onScroll() {
23
27
  const { clientHeight, scrollTop, scrollHeight } = this.el;
24
28
  const top = this.elements()[0]?.nativeElement.clientHeight || 0;
@@ -36,7 +40,7 @@ class TuiBottomSheet {
36
40
  });
37
41
  }
38
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiBottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiBottomSheet, isStandalone: true, selector: "tui-bottom-sheet", inputs: { stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: false, transformFunction: null }, bar: { classPropertyName: "bar", publicName: "bar", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "resize": "onScroll()", "scroll.zoneless": "onScroll()" }, properties: { "class._bar": "bar()", "style.--t-initial": "stops()[0]", "style.scroll-snap-type": "stops().length > 1 ? \"y mandatory\" : null" } }, providers: [tuiHeaderOptionsProvider({ size: 'h5' })], viewQueries: [{ propertyName: "elements", predicate: ["stops"], descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;position:absolute;display:block;inset-block-start:100%;inset-inline-start:0;inset-inline-end:0;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;z-index:1;display:block;inset-block-start:.625rem;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:not(._bar):before{display:none}:host:not(._bar) .t-content{padding-block-start:1rem}:host:after{content:\"\";position:absolute;inset-block-start:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;inset-block-start:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiBottomSheet, isStandalone: true, selector: "tui-bottom-sheet", inputs: { stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: false, transformFunction: null }, bar: { classPropertyName: "bar", publicName: "bar", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "resize": "onResize()", "scroll.zoneless": "onScroll()" }, properties: { "class._bar": "bar()", "style.--t-initial": "stops()[0]", "style.scroll-snap-type": "stops().length > 1 ? \"y mandatory\" : null" } }, providers: [tuiHeaderOptionsProvider({ size: 'h5' })], viewQueries: [{ propertyName: "elements", predicate: ["stops"], descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onResize()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;position:absolute;display:block;inset-block-start:100%;inset-inline-start:0;inset-inline-end:0;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;z-index:1;display:block;inset-block-start:.625rem;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:not(._bar):before{display:none}:host:not(._bar) .t-content{padding-block-start:1rem}:host:after{content:\"\";position:absolute;inset-block-start:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;inset-block-start:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
44
  }
41
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiBottomSheet, decorators: [{
42
46
  type: Component,
@@ -44,9 +48,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
44
48
  '[class._bar]': 'bar()',
45
49
  '[style.--t-initial]': 'stops()[0]',
46
50
  '[style.scroll-snap-type]': 'stops().length > 1 ? "y mandatory" : null',
47
- '(resize)': 'onScroll()',
51
+ '(resize)': 'onResize()',
48
52
  '(scroll.zoneless)': 'onScroll()',
49
- }, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;position:absolute;display:block;inset-block-start:100%;inset-inline-start:0;inset-inline-end:0;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;z-index:1;display:block;inset-block-start:.625rem;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:not(._bar):before{display:none}:host:not(._bar) .t-content{padding-block-start:1rem}:host:after{content:\"\";position:absolute;inset-block-start:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;inset-block-start:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"] }]
53
+ }, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onResize()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;position:absolute;display:block;inset-block-start:100%;inset-inline-start:0;inset-inline-end:0;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;z-index:1;display:block;inset-block-start:.625rem;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:not(._bar):before{display:none}:host:not(._bar) .t-content{padding-block-start:1rem}:host:after{content:\"\";position:absolute;inset-block-start:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;inset-block-start:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"] }]
50
54
  }] });
51
55
 
52
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-bottom-sheet.mjs","sources":["../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.options.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.template.html","../../../projects/addon-mobile/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiBottomSheetOptions {\n readonly bar: boolean;\n readonly stops: readonly string[];\n}\n\nexport const TUI_BOTTOM_SHEET_DEFAULT_OPTIONS: TuiBottomSheetOptions = {\n bar: true,\n stops: ['1.5rem'],\n};\n\nexport const [TUI_BOTTOM_SHEET_OPTIONS, tuiBottomSheetOptionsProvider] = tuiCreateOptions(\n TUI_BOTTOM_SHEET_DEFAULT_OPTIONS,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n input,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiHeaderOptionsProvider} from '@taiga-ui/layout/components/header';\n\nimport {TUI_BOTTOM_SHEET_OPTIONS} from './bottom-sheet.options';\n\n@Component({\n selector: 'tui-bottom-sheet',\n templateUrl: './bottom-sheet.template.html',\n styleUrl: './bottom-sheet.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiHeaderOptionsProvider({size: 'h5'})],\n host: {\n '[class._bar]': 'bar()',\n '[style.--t-initial]': 'stops()[0]',\n '[style.scroll-snap-type]': 'stops().length > 1 ? \"y mandatory\" : null',\n '(resize)': 'onScroll()',\n '(scroll.zoneless)': 'onScroll()',\n },\n})\nexport class TuiBottomSheet {\n private readonly elements = viewChildren<ElementRef<HTMLElement>>('stops');\n private readonly content = viewChild<ElementRef<HTMLElement>>('content');\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_BOTTOM_SHEET_OPTIONS);\n\n public readonly stops = input(this.options.stops);\n public readonly bar = input(this.options.bar);\n\n protected onScroll(): void {\n const {clientHeight, scrollTop, scrollHeight} = this.el;\n const top = this.elements()[0]?.nativeElement.clientHeight || 0;\n const max = this.content()?.nativeElement.clientHeight || Infinity;\n const height = Math.min(clientHeight, max);\n const scrolled = Math.min(scrollTop, height - top);\n const transform = `translate3d(0, ${-1 * scrolled}px, 0)`;\n const css = this.el.getAnimations().some((a) => 'animationName' in a);\n\n this.el.style.setProperty('--t-height', `${scrollHeight}px`);\n this.el.style.setProperty('overflow', 'scroll');\n this.el.animate([{transform}], {\n duration: 20,\n easing: 'ease-in',\n fill: css ? 'none' : 'forwards',\n });\n }\n}\n","@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></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-addon-mobile-components-bottom-sheet.mjs","sources":["../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.options.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.template.html","../../../projects/addon-mobile/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiBottomSheetOptions {\n readonly bar: boolean;\n readonly stops: readonly string[];\n}\n\nexport const TUI_BOTTOM_SHEET_DEFAULT_OPTIONS: TuiBottomSheetOptions = {\n bar: true,\n stops: ['1.5rem'],\n};\n\nexport const [TUI_BOTTOM_SHEET_OPTIONS, tuiBottomSheetOptionsProvider] = tuiCreateOptions(\n TUI_BOTTOM_SHEET_DEFAULT_OPTIONS,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n input,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiHeaderOptionsProvider} from '@taiga-ui/layout/components/header';\n\nimport {TUI_BOTTOM_SHEET_OPTIONS} from './bottom-sheet.options';\n\n@Component({\n selector: 'tui-bottom-sheet',\n templateUrl: './bottom-sheet.template.html',\n styleUrl: './bottom-sheet.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiHeaderOptionsProvider({size: 'h5'})],\n host: {\n '[class._bar]': 'bar()',\n '[style.--t-initial]': 'stops()[0]',\n '[style.scroll-snap-type]': 'stops().length > 1 ? \"y mandatory\" : null',\n '(resize)': 'onResize()',\n '(scroll.zoneless)': 'onScroll()',\n },\n})\nexport class TuiBottomSheet {\n private readonly elements = viewChildren<ElementRef<HTMLElement>>('stops');\n private readonly content = viewChild<ElementRef<HTMLElement>>('content');\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_BOTTOM_SHEET_OPTIONS);\n\n public readonly stops = input(this.options.stops);\n public readonly bar = input(this.options.bar);\n\n protected onResize(): void {\n this.el.style.removeProperty('--t-height');\n this.onScroll();\n }\n\n protected onScroll(): void {\n const {clientHeight, scrollTop, scrollHeight} = this.el;\n const top = this.elements()[0]?.nativeElement.clientHeight || 0;\n const max = this.content()?.nativeElement.clientHeight || Infinity;\n const height = Math.min(clientHeight, max);\n const scrolled = Math.min(scrollTop, height - top);\n const transform = `translate3d(0, ${-1 * scrolled}px, 0)`;\n const css = this.el.getAnimations().some((a) => 'animationName' in a);\n\n this.el.style.setProperty('--t-height', `${scrollHeight}px`);\n this.el.style.setProperty('overflow', 'scroll');\n this.el.animate([{transform}], {\n duration: 20,\n easing: 'ease-in',\n fill: css ? 'none' : 'forwards',\n });\n }\n}\n","@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onResize()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ class TuiKeypad {
7
7
  this.columns = input(3);
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiKeypad, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiKeypad, isStandalone: true, selector: "tui-keypad", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.25.0" }, listeners: { "mousedown.zoneless.prevent": "(0)", "pointerdown.zoneless.prevent": "(0)" }, properties: { "style.--t-columns": "columns()" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-keypad:where(*[data-tui-version=\"5.25.0\"]){display:grid;grid-template-columns:repeat(var(--t-columns, 3),1fr);grid-auto-rows:4rem;place-items:center;inline-size:100%;max-inline-size:37.5rem;margin-inline:auto;font:600 1.75rem/1 var(--tui-typography-family-display);color:var(--tui-text-primary);-webkit-user-select:none;user-select:none}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button{display:flex;box-sizing:border-box;align-items:center;justify-content:center;block-size:3.5rem;inline-size:3.5rem;max-inline-size:100%;border:none;border-radius:50%;background:transparent;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:background var(--tui-duration) ease-out,scale var(--tui-duration) var(--tui-curve-expressive-entrance)}@media(hover:hover)and (pointer:fine){tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:hover:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:hover:not(:disabled){background:var(--tui-background-neutral-1-hover)}}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:active:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:active:not(:disabled){background:var(--tui-background-neutral-1-pressed);scale:1.14}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:focus-visible,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:.125rem}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:disabled,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:disabled{opacity:var(--tui-disabled-opacity);cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiKeypad, isStandalone: true, selector: "tui-keypad", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.26.0" }, listeners: { "mousedown.zoneless.prevent": "(0)", "pointerdown.zoneless.prevent": "(0)" }, properties: { "style.--t-columns": "columns()" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-keypad:where(*[data-tui-version=\"5.26.0\"]){display:grid;grid-template-columns:repeat(var(--t-columns, 3),1fr);grid-auto-rows:4rem;place-items:center;inline-size:100%;max-inline-size:37.5rem;margin-inline:auto;font:600 1.75rem/1 var(--tui-typography-family-display);color:var(--tui-text-primary);-webkit-user-select:none;user-select:none}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button{display:flex;box-sizing:border-box;align-items:center;justify-content:center;block-size:3.5rem;inline-size:3.5rem;max-inline-size:100%;border:none;border-radius:50%;background:transparent;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:background var(--tui-duration) ease-out,scale var(--tui-duration) var(--tui-curve-expressive-entrance)}@media(hover:hover)and (pointer:fine){tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:hover:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:hover:not(:disabled){background:var(--tui-background-neutral-1-hover)}}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:active:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:active:not(:disabled){background:var(--tui-background-neutral-1-pressed);scale:1.14}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:focus-visible,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:.125rem}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:disabled,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:disabled{opacity:var(--tui-disabled-opacity);cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiKeypad, decorators: [{
13
13
  type: Component,
@@ -17,7 +17,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
17
17
  // Keep the driven field focused on tap: iOS needs mousedown, Android longtap needs pointerdown
18
18
  '(mousedown.zoneless.prevent)': '(0)',
19
19
  '(pointerdown.zoneless.prevent)': '(0)',
20
- }, styles: ["tui-keypad:where(*[data-tui-version=\"5.25.0\"]){display:grid;grid-template-columns:repeat(var(--t-columns, 3),1fr);grid-auto-rows:4rem;place-items:center;inline-size:100%;max-inline-size:37.5rem;margin-inline:auto;font:600 1.75rem/1 var(--tui-typography-family-display);color:var(--tui-text-primary);-webkit-user-select:none;user-select:none}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button{display:flex;box-sizing:border-box;align-items:center;justify-content:center;block-size:3.5rem;inline-size:3.5rem;max-inline-size:100%;border:none;border-radius:50%;background:transparent;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:background var(--tui-duration) ease-out,scale var(--tui-duration) var(--tui-curve-expressive-entrance)}@media(hover:hover)and (pointer:fine){tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:hover:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:hover:not(:disabled){background:var(--tui-background-neutral-1-hover)}}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:active:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:active:not(:disabled){background:var(--tui-background-neutral-1-pressed);scale:1.14}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:focus-visible,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:.125rem}tui-keypad:where(*[data-tui-version=\"5.25.0\"])>a:disabled,tui-keypad:where(*[data-tui-version=\"5.25.0\"])>button:disabled{opacity:var(--tui-disabled-opacity);cursor:default}\n"] }]
20
+ }, styles: ["tui-keypad:where(*[data-tui-version=\"5.26.0\"]){display:grid;grid-template-columns:repeat(var(--t-columns, 3),1fr);grid-auto-rows:4rem;place-items:center;inline-size:100%;max-inline-size:37.5rem;margin-inline:auto;font:600 1.75rem/1 var(--tui-typography-family-display);color:var(--tui-text-primary);-webkit-user-select:none;user-select:none}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button{display:flex;box-sizing:border-box;align-items:center;justify-content:center;block-size:3.5rem;inline-size:3.5rem;max-inline-size:100%;border:none;border-radius:50%;background:transparent;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:background var(--tui-duration) ease-out,scale var(--tui-duration) var(--tui-curve-expressive-entrance)}@media(hover:hover)and (pointer:fine){tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:hover:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:hover:not(:disabled){background:var(--tui-background-neutral-1-hover)}}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:active:not(:disabled),tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:active:not(:disabled){background:var(--tui-background-neutral-1-pressed);scale:1.14}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:focus-visible,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:.125rem}tui-keypad:where(*[data-tui-version=\"5.26.0\"])>a:disabled,tui-keypad:where(*[data-tui-version=\"5.26.0\"])>button:disabled{opacity:var(--tui-disabled-opacity);cursor:default}\n"] }]
21
21
  }] });
22
22
 
23
23
  /**
@@ -20,7 +20,7 @@ class TuiSearchBarComponent {
20
20
  <ng-content select="input" />
21
21
  </div>
22
22
  <ng-content />
23
- `, isInline: true, styles: [":host{--t-translate: 3.75rem;position:relative;display:flex;align-items:center;box-sizing:border-box;gap:1rem}:host ::ng-deep [tuiButtonX]{transition:margin var(--tui-duration)}.t-wrapper{position:relative;display:flex;flex:1;min-inline-size:0}:host:not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{opacity:0;visibility:hidden}:host-context([data-platform=\"ios\"])[data-appearance=floating]:focus-within ::ng-deep [tuiButtonX]{animation:tuiTranslateIn var(--tui-duration)}:host-context([data-platform=\"ios\"]):not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{margin-inline-start:-3.75rem;animation:tuiTranslateOut var(--tui-duration)}:host-context([data-platform=\"ios\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .7);--t-glass-glow: var(--tui-background-base);--t-glass-filter: blur(.25rem) saturate(6) brightness(1.05);--t-glass-bevel: linear-gradient(319deg, #fff 4%, #fff 19%, rgba(255, 255, 255, .12) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .12) 60%, #fff 80%, #fff 96%);--t-glass-bevel-filter: none}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiSearchBar]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .75rem var(--t-glass-glow)}:host-context([data-platform=\"ios\"])[data-appearance=floating] .t-wrapper:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;border-radius:3.125rem}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .75rem var(--t-glass-glow);position:relative;box-sizing:border-box;border-radius:100%;color:var(--tui-text-primary);transition-property:margin,opacity,visibility,scale;transition-timing-function:ease,ease,ease,var(--tui-curve-expressive-entrance)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:active{scale:1.25;filter:brightness(3)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;display:block;inline-size:auto;block-size:auto;margin:0;-webkit-mask-size:auto;mask-size:auto}@keyframes tuiTranslateIn{0%{translate:var(--t-translate)}}@keyframes tuiTranslateOut{to{translate:var(--t-translate)}}:host-context([data-platform=\"android\"]):focus-within .t-wrapper:not(:last-child) ::ng-deep [tuiSearchBar]{background-image:none}:host-context([data-platform=\"android\"]) ::ng-deep [tuiButtonX]{position:absolute;inset-inline-start:.4375rem}:host-context([data-platform=\"android\"]):not(:focus-within) ::ng-deep [tuiButtonX]{margin-inline-start:0}:host-context([tuiTheme=\"dark\"])[data-appearance=floating]{--t-glass-background: rgba(88, 88, 88, .31);--t-glass-glow: rgba(31, 31, 31, .8);--t-glass-filter: blur(.25rem) saturate(4);--t-glass-bevel: linear-gradient(319deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .12) 19%, rgba(255, 255, 255, .04) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .04) 60%, rgba(255, 255, 255, .12) 80%, rgba(255, 255, 255, .2) 96%);--t-glass-bevel-filter: brightness(.6)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ `, isInline: true, styles: [":host{--t-translate: 3.75rem;position:relative;display:flex;align-items:center;box-sizing:border-box;gap:1rem}:host ::ng-deep [tuiButtonX]{transition:margin var(--tui-duration)}.t-wrapper{position:relative;display:flex;flex:1;min-inline-size:0}:host:not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{opacity:0;visibility:hidden}:host-context([data-platform=\"ios\"])[data-appearance=floating]:focus-within ::ng-deep [tuiButtonX]{animation:tuiTranslateIn var(--tui-duration)}:host-context([data-platform=\"ios\"]):not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{margin-inline-start:-3.75rem;animation:tuiTranslateOut var(--tui-duration)}:host-context([data-platform=\"ios\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .7);--t-glass-glow: rgba(255, 255, 255, .1);--t-glass-filter: blur(.25rem) saturate(1.3) brightness(1.05);--t-glass-bevel: linear-gradient(319deg, #fff 4%, #fff 19%, rgba(255, 255, 255, .12) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .12) 60%, #fff 80%, #fff 96%);--t-glass-bevel-filter: none}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiSearchBar]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .5rem var(--t-glass-glow)}:host-context([data-platform=\"ios\"])[data-appearance=floating] .t-wrapper:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;border-radius:3.125rem}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .5rem var(--t-glass-glow);position:relative;box-sizing:border-box;border-radius:100%;color:var(--tui-text-primary);transition-property:margin,opacity,visibility,scale;transition-timing-function:ease,ease,ease,var(--tui-curve-expressive-entrance)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:active{scale:1.25;filter:brightness(3)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;display:block;inline-size:auto;block-size:auto;margin:0;-webkit-mask-size:auto;mask-size:auto}@keyframes tuiTranslateIn{0%{translate:var(--t-translate)}}@keyframes tuiTranslateOut{to{translate:var(--t-translate)}}:host-context([data-platform=\"android\"]):focus-within .t-wrapper:not(:last-child) ::ng-deep [tuiSearchBar]{background-image:none}:host-context([data-platform=\"android\"]) ::ng-deep [tuiButtonX]{position:absolute;inset-inline-start:.4375rem}:host-context([data-platform=\"android\"]):not(:focus-within) ::ng-deep [tuiButtonX]{margin-inline-start:0}:host-context([tuiTheme=\"dark\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .1);--t-glass-glow: rgba(31, 31, 31, .08);--t-glass-bevel: linear-gradient(319deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .12) 19%, rgba(255, 255, 255, .04) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .04) 60%, rgba(255, 255, 255, .12) 80%, rgba(255, 255, 255, .2) 96%);--t-glass-bevel-filter: brightness(.6)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSearchBarComponent, decorators: [{
26
26
  type: Component,
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
35
35
  size: platform === 'android' ? 's' : 'm',
36
36
  })),
37
37
  tuiCommonIconsProvider((platform = inject(TUI_PLATFORM)) => platform === 'android' ? { close: '@tui.arrow-left' } : {}),
38
- ], host: { '[attr.data-appearance]': 'appearance()' }, styles: [":host{--t-translate: 3.75rem;position:relative;display:flex;align-items:center;box-sizing:border-box;gap:1rem}:host ::ng-deep [tuiButtonX]{transition:margin var(--tui-duration)}.t-wrapper{position:relative;display:flex;flex:1;min-inline-size:0}:host:not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{opacity:0;visibility:hidden}:host-context([data-platform=\"ios\"])[data-appearance=floating]:focus-within ::ng-deep [tuiButtonX]{animation:tuiTranslateIn var(--tui-duration)}:host-context([data-platform=\"ios\"]):not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{margin-inline-start:-3.75rem;animation:tuiTranslateOut var(--tui-duration)}:host-context([data-platform=\"ios\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .7);--t-glass-glow: var(--tui-background-base);--t-glass-filter: blur(.25rem) saturate(6) brightness(1.05);--t-glass-bevel: linear-gradient(319deg, #fff 4%, #fff 19%, rgba(255, 255, 255, .12) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .12) 60%, #fff 80%, #fff 96%);--t-glass-bevel-filter: none}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiSearchBar]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .75rem var(--t-glass-glow)}:host-context([data-platform=\"ios\"])[data-appearance=floating] .t-wrapper:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;border-radius:3.125rem}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .75rem var(--t-glass-glow);position:relative;box-sizing:border-box;border-radius:100%;color:var(--tui-text-primary);transition-property:margin,opacity,visibility,scale;transition-timing-function:ease,ease,ease,var(--tui-curve-expressive-entrance)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:active{scale:1.25;filter:brightness(3)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;display:block;inline-size:auto;block-size:auto;margin:0;-webkit-mask-size:auto;mask-size:auto}@keyframes tuiTranslateIn{0%{translate:var(--t-translate)}}@keyframes tuiTranslateOut{to{translate:var(--t-translate)}}:host-context([data-platform=\"android\"]):focus-within .t-wrapper:not(:last-child) ::ng-deep [tuiSearchBar]{background-image:none}:host-context([data-platform=\"android\"]) ::ng-deep [tuiButtonX]{position:absolute;inset-inline-start:.4375rem}:host-context([data-platform=\"android\"]):not(:focus-within) ::ng-deep [tuiButtonX]{margin-inline-start:0}:host-context([tuiTheme=\"dark\"])[data-appearance=floating]{--t-glass-background: rgba(88, 88, 88, .31);--t-glass-glow: rgba(31, 31, 31, .8);--t-glass-filter: blur(.25rem) saturate(4);--t-glass-bevel: linear-gradient(319deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .12) 19%, rgba(255, 255, 255, .04) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .04) 60%, rgba(255, 255, 255, .12) 80%, rgba(255, 255, 255, .2) 96%);--t-glass-bevel-filter: brightness(.6)}\n"] }]
38
+ ], host: { '[attr.data-appearance]': 'appearance()' }, styles: [":host{--t-translate: 3.75rem;position:relative;display:flex;align-items:center;box-sizing:border-box;gap:1rem}:host ::ng-deep [tuiButtonX]{transition:margin var(--tui-duration)}.t-wrapper{position:relative;display:flex;flex:1;min-inline-size:0}:host:not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{opacity:0;visibility:hidden}:host-context([data-platform=\"ios\"])[data-appearance=floating]:focus-within ::ng-deep [tuiButtonX]{animation:tuiTranslateIn var(--tui-duration)}:host-context([data-platform=\"ios\"]):not(:focus-within) ::ng-deep [tuiButtonX],:host-context([data-platform=\"ios\"]):not([data-appearance=floating]) ::ng-deep [tuiButtonX]{margin-inline-start:-3.75rem;animation:tuiTranslateOut var(--tui-duration)}:host-context([data-platform=\"ios\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .7);--t-glass-glow: rgba(255, 255, 255, .1);--t-glass-filter: blur(.25rem) saturate(1.3) brightness(1.05);--t-glass-bevel: linear-gradient(319deg, #fff 4%, #fff 19%, rgba(255, 255, 255, .12) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .12) 60%, #fff 80%, #fff 96%);--t-glass-bevel-filter: none}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiSearchBar]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .5rem var(--t-glass-glow)}:host-context([data-platform=\"ios\"])[data-appearance=floating] .t-wrapper:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;border-radius:3.125rem}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]{-webkit-backdrop-filter:var(--t-glass-filter);backdrop-filter:var(--t-glass-filter);background-color:var(--t-glass-background);box-shadow:0 .5rem 2rem #00000017,inset 0 0 .5rem var(--t-glass-glow);position:relative;box-sizing:border-box;border-radius:100%;color:var(--tui-text-primary);transition-property:margin,opacity,visibility,scale;transition-timing-function:ease,ease,ease,var(--tui-curve-expressive-entrance)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:active{scale:1.25;filter:brightness(3)}:host-context([data-platform=\"ios\"])[data-appearance=floating] ::ng-deep [tuiButtonX]:after{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;padding:1px;background:var(--t-glass-bevel);filter:var(--t-glass-bevel-filter);-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;display:block;inline-size:auto;block-size:auto;margin:0;-webkit-mask-size:auto;mask-size:auto}@keyframes tuiTranslateIn{0%{translate:var(--t-translate)}}@keyframes tuiTranslateOut{to{translate:var(--t-translate)}}:host-context([data-platform=\"android\"]):focus-within .t-wrapper:not(:last-child) ::ng-deep [tuiSearchBar]{background-image:none}:host-context([data-platform=\"android\"]) ::ng-deep [tuiButtonX]{position:absolute;inset-inline-start:.4375rem}:host-context([data-platform=\"android\"]):not(:focus-within) ::ng-deep [tuiButtonX]{margin-inline-start:0}:host-context([tuiTheme=\"dark\"])[data-appearance=floating]{--t-glass-background: rgba(255, 255, 255, .1);--t-glass-glow: rgba(31, 31, 31, .08);--t-glass-bevel: linear-gradient(319deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .12) 19%, rgba(255, 255, 255, .04) 40%, rgba(255, 255, 255, .02) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, .02) 55%, rgba(255, 255, 255, .04) 60%, rgba(255, 255, 255, .12) 80%, rgba(255, 255, 255, .2) 96%);--t-glass-bevel-filter: brightness(.6)}\n"] }]
39
39
  }] });
40
40
 
41
41
  class TuiSearchBarInput {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-search-bar.mjs","sources":["../../../projects/addon-mobile/components/search-bar/search-bar.component.ts","../../../projects/addon-mobile/components/search-bar/search-bar-input.component.ts","../../../projects/addon-mobile/components/search-bar/search-bar.ts","../../../projects/addon-mobile/components/search-bar/taiga-ui-addon-mobile-components-search-bar.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\nimport {tuiButtonXOptionsProvider} from '@taiga-ui/core/directives/button-x';\nimport {tuiCommonIconsProvider} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'form[tuiSearchBar],search[tuiSearchBar]',\n template: `\n <div class=\"t-wrapper\">\n <ng-content select=\"input\" />\n </div>\n <ng-content />\n `,\n styleUrl: './search-bar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonXOptionsProvider((platform = inject(TUI_PLATFORM)) => ({\n appearance: platform === 'android' ? 'action' : '',\n size: platform === 'android' ? 's' : 'm',\n })),\n tuiCommonIconsProvider((platform = inject(TUI_PLATFORM)) =>\n platform === 'android' ? {close: '@tui.arrow-left'} : {},\n ),\n ],\n host: {'[attr.data-appearance]': 'appearance()'},\n})\nexport class TuiSearchBarComponent {\n public readonly appearance = input<'floating' | 'neutral'>('neutral');\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'input[tuiSearchBar]',\n template: '',\n styleUrl: './search-bar-input.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n autocomplete: 'off',\n autocorrect: 'off',\n spellcheck: 'false',\n type: 'search',\n },\n})\nexport class TuiSearchBarInput {}\n","import {TuiSearchBarComponent} from './search-bar.component';\nimport {TuiSearchBarInput} from './search-bar-input.component';\n\nexport const TuiSearchBar = [TuiSearchBarComponent, TuiSearchBarInput] as const;\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-addon-mobile-components-search-bar.mjs","sources":["../../../projects/addon-mobile/components/search-bar/search-bar.component.ts","../../../projects/addon-mobile/components/search-bar/search-bar-input.component.ts","../../../projects/addon-mobile/components/search-bar/search-bar.ts","../../../projects/addon-mobile/components/search-bar/taiga-ui-addon-mobile-components-search-bar.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\nimport {tuiButtonXOptionsProvider} from '@taiga-ui/core/directives/button-x';\nimport {tuiCommonIconsProvider} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'form[tuiSearchBar],search[tuiSearchBar]',\n template: `\n <div class=\"t-wrapper\">\n <ng-content select=\"input\" />\n </div>\n <ng-content />\n `,\n styleUrl: './search-bar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonXOptionsProvider((platform = inject(TUI_PLATFORM)) => ({\n appearance: platform === 'android' ? 'action' : '',\n size: platform === 'android' ? 's' : 'm',\n })),\n tuiCommonIconsProvider((platform = inject(TUI_PLATFORM)) =>\n platform === 'android' ? {close: '@tui.arrow-left'} : {},\n ),\n ],\n host: {'[attr.data-appearance]': 'appearance()'},\n})\nexport class TuiSearchBarComponent {\n public readonly appearance = input<'floating' | 'neutral'>('neutral');\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'input[tuiSearchBar]',\n template: '',\n styleUrl: './search-bar-input.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n autocomplete: 'off',\n autocorrect: 'off',\n spellcheck: 'false',\n type: 'search',\n },\n})\nexport class TuiSearchBarInput {}\n","import {TuiSearchBarComponent} from './search-bar.component';\nimport {TuiSearchBarInput} from './search-bar-input.component';\n\nexport const TuiSearchBar = [TuiSearchBarComponent, TuiSearchBarInput] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,30 +1,55 @@
1
1
  import * as i0 from '@angular/core';
2
- import { viewChildren, ElementRef, inject, afterNextRender, ChangeDetectionStrategy, Component, Injectable, input, Directive } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { inject, Directive, viewChildren, ElementRef, afterNextRender, ChangeDetectionStrategy, Component, Injectable, input } from '@angular/core';
3
+ import { outputFromObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { WaResizeObserver } from '@ng-web-apis/resize-observer';
5
5
  import { TUI_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
6
6
  import * as i1 from '@taiga-ui/cdk/directives/animated';
7
7
  import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
8
- import { tuiCloseWatcher, tuiZonefull } from '@taiga-ui/cdk/observables';
8
+ import { tuiIfMap, tuiCloseWatcher, tuiZonefull } from '@taiga-ui/cdk/observables';
9
9
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
10
10
  import { TuiButton } from '@taiga-ui/core/components/button';
11
11
  import * as i2 from '@taiga-ui/core/components/scrollbar';
12
12
  import { TuiScrollRef } from '@taiga-ui/core/components/scrollbar';
13
13
  import { TUI_DIALOGS_CLOSE } from '@taiga-ui/core/portals/dialog';
14
14
  import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
15
- import { Subject, merge, map, exhaustMap, isObservable, take, of, filter } from 'rxjs';
15
+ import { fromEvent, merge, map, filter, pairwise, takeWhile, bufferCount, take, startWith, Subject, exhaustMap, isObservable, of } from 'rxjs';
16
+ import { DOCUMENT } from '@angular/common';
16
17
  import * as i1$1 from '@taiga-ui/cdk/portals';
17
18
  import { tuiAsPortal, TuiPortalDirective } from '@taiga-ui/cdk/portals';
18
19
  import { Meta } from '@angular/platform-browser';
19
20
  import { TuiModalService } from '@taiga-ui/core/portals/modal';
20
21
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
21
22
 
23
+ class TuiSheetDialogClose {
24
+ constructor() {
25
+ this.el = tuiInjectElement();
26
+ this.doc = inject(DOCUMENT);
27
+ this.sheet = inject(TuiSheetDialogComponent);
28
+ this.scroll$ = fromEvent(this.el, 'scroll');
29
+ this.untouched$ = merge(fromEvent(this.doc, 'touchstart', { passive: true }).pipe(map(() => false)), fromEvent(this.doc, 'touchend', { passive: true }).pipe(map(() => true)), fromEvent(this.doc, 'touchcancel', { passive: true }).pipe(map(() => true)));
30
+ this.swipe$ = this.scroll$.pipe(map(() => this.el.scrollHeight - this.el.clientHeight - this.el.scrollTop),
31
+ // Excluding scroll due to content height changes when scrolled to the end
32
+ filter((scroll) => Math.abs(scroll) > 10), map(() => this.el.scrollTop), pairwise(), map(([prev, curr]) => prev - curr), takeWhile((value) => value > 0), bufferCount(5), take(1));
33
+ this.release$ = this.scroll$.pipe(startWith(null), filter(() => !this.el.scrollTop), take(1));
34
+ this.tuiSheetDialogClose = outputFromObservable(merge(
35
+ // Swipe down
36
+ this.untouched$.pipe(tuiIfMap(() => this.swipe$, (untouched) => untouched && this.el.scrollTop < this.sheet.initial)),
37
+ // Wheel/let go at the end
38
+ merge(this.untouched$, fromEvent(this.el, 'wheel').pipe(map(() => true))).pipe(tuiIfMap(() => this.release$))));
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSheetDialogClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiSheetDialogClose, isStandalone: true, selector: "[tuiSheetDialogClose]", outputs: { tuiSheetDialogClose: "tuiSheetDialogClose" }, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSheetDialogClose, decorators: [{
44
+ type: Directive,
45
+ args: [{ selector: '[tuiSheetDialogClose]' }]
46
+ }] });
47
+
22
48
  const REQUIRED_ERROR = new Error(ngDevMode ? 'Required dialog was dismissed' : '');
23
49
  class TuiSheetDialogComponent {
24
50
  constructor() {
25
51
  this.stops = viewChildren('stops', { read: ElementRef });
26
52
  this.el = tuiInjectElement();
27
- this.pointers = 0;
28
53
  this.context = injectContext();
29
54
  this.close$ = new Subject();
30
55
  this.interacted = false;
@@ -41,26 +66,17 @@ class TuiSheetDialogComponent {
41
66
  .subscribe(() => this.close());
42
67
  afterNextRender(() => this.onResize());
43
68
  }
44
- // Re-pin async content to the initial snap; mandatory scroll-snap jumps to the bottom otherwise.
45
- onResize() {
46
- if (!this.interacted) {
47
- this.el.scrollTop = this.initial || 0;
48
- }
49
- }
50
- onPointerChange(delta) {
51
- this.interacted = this.interacted || !!delta;
52
- this.pointers = Math.max(this.pointers + delta, 0);
53
- if (!this.pointers && this.el.scrollTop <= 0 && this.interacted) {
54
- this.close$.next();
55
- }
56
- }
57
69
  get initial() {
58
70
  return this.context.closable
59
71
  ? this.stops()
60
- .map((e) => e.nativeElement.offsetTop - this.context.offset)
61
- .concat(this.el.clientHeight ?? Infinity)[this.context.initial]
72
+ .map((e) => e.nativeElement.offsetTop)
73
+ .concat(this.el.clientHeight ?? Infinity)[this.context.initial] || 0
62
74
  : 0;
63
75
  }
76
+ // Re-pin async content to the initial snap; mandatory scroll-snap jumps to the bottom otherwise.
77
+ onResize() {
78
+ this.el.scrollTop = this.interacted ? this.el.scrollTop : this.initial;
79
+ }
64
80
  close() {
65
81
  if (this.context.required) {
66
82
  this.context.$implicit.error(REQUIRED_ERROR);
@@ -70,22 +86,24 @@ class TuiSheetDialogComponent {
70
86
  }
71
87
  }
72
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSheetDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiSheetDialogComponent, isStandalone: true, selector: "tui-sheet-dialog", host: { listeners: { "click.self": "close$.next()", "document:touchcancel.zoneless": "onPointerChange(-1)", "document:touchend.zoneless": "onPointerChange(-1)", "document:touchstart.passive.zoneless": "onPointerChange(1)", "scroll.zoneless": "onPointerChange(0)", "wheel.passive.zoneless": "interacted = true" }, properties: { "attr.data-appearance": "context.appearance", "class._bar": "context.bar", "class._closeable": "context.closable", "style.--tui-offset.px": "context.offset" } }, viewQueries: [{ propertyName: "stops", predicate: ["stops"], descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiScrollRef }], ngImport: i0, template: "<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n", styles: [":host{scrollbar-width:none;position:sticky;display:flex;inset-inline-start:0;inline-size:100%;max-inline-size:40rem;block-size:calc(100% - max(var(--tui-offset),env(safe-area-inset-top)));flex-direction:column;font:var(--tui-typography-body-m);overflow-y:scroll;overscroll-behavior:none;scroll-snap-type:y mandatory;margin:max(var(--tui-offset),env(safe-area-inset-top)) auto 0;border-radius:.75rem .75rem 0 0;box-shadow:0 5rem var(--tui-background-elevation-1);--t-top: 0}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}@supports (-webkit-touch-callout: none){:host{overscroll-behavior:contain}}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide;animation-timing-function:var(--tui-curve-expressive-exit)}:host.tui-enter{animation-duration:calc(var(--tui-duration) / .6);animation-timing-function:var(--tui-curve-expressive-standard)}:host:before{position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;content:\"\";z-index:-1}:host._bar{--t-top: 1.5rem}:host._bar .t-bar{display:block}:host._closeable{display:block}:host._closeable .t-stops{display:flex}:host[data-appearance~=fullscreen]{display:block}:host[data-appearance~=fullscreen] .t-sheet{min-block-size:100%}:host ::ng-deep tui-data-list[data-size]{padding:0}:host ::ng-deep tui-data-list[data-size] [tuiOption][data-size]{box-sizing:content-box;border-radius:0}.t-stops{display:none;block-size:100%;scroll-snap-stop:always;scroll-snap-align:start;pointer-events:none}.t-stop{position:relative;inset-block-start:env(safe-area-inset-bottom);scroll-snap-stop:normal;scroll-snap-align:start;block-size:1rem;inline-size:1rem}.t-sheet{display:flex;inline-size:100%;flex-direction:column;box-shadow:var(--tui-shadow-small);border-radius:inherit;padding:0 var(--tui-padding-inline);margin-block-start:auto;background:var(--tui-background-elevation-1);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start;--tui-padding-inline: 1rem}.t-bar{position:sticky;z-index:1;display:none;inset-block-start:0;block-size:1.5rem;margin:0 calc(-1 * var(--tui-padding-inline));border-radius:inherit;background:var(--tui-background-elevation-1)}.t-bar:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";inset-block-start:.5rem;inline-size:2rem;block-size:.25rem;background:var(--tui-border-normal);border-radius:1rem}.t-content{position:relative;display:flex;flex-direction:column;flex-grow:1;border-radius:inherit;isolation:isolate;padding-block-end:max(1.5rem,env(safe-area-inset-bottom))}.t-content:after{content:\"\";position:relative;z-index:-1;display:block;inset-block-start:max(1.5rem,env(safe-area-inset-bottom));scroll-snap-stop:always;scroll-snap-align:end;border-image:conic-gradient(var(--tui-background-elevation-1) 0 0) fill 0/0/0 100vh 100vh}* ::ng-deep>header,* ::ng-deep>[tuiSlides]>*>header,* ::ng-deep>ng-component>header,* ::ng-deep>ng-component>[tuiSlides]>*>header{position:sticky;z-index:1;inset-block-start:var(--t-top);margin:0 calc(-1 * var(--tui-padding-inline));padding:.75rem var(--tui-padding-inline);border-radius:inherit;background:var(--tui-background-elevation-1);font:var(--tui-typography-heading-h6)}* ::ng-deep>footer:not([tuiFloatingContainer]),* ::ng-deep>[tuiSlides]>*>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>[tuiSlides]>*>footer:not([tuiFloatingContainer]){display:flex;flex-direction:column-reverse;gap:.5rem;margin-block-start:1rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],label[tuiButton],a[tuiIconButton],button[tuiIconButton],label[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiSheetDialogComponent, isStandalone: true, selector: "tui-sheet-dialog", host: { listeners: { "click.self": "close$.next()", "document:touchstart.passive.zoneless": "interacted = true", "tuiSheetDialogClose": "close$.next()", "wheel.passive.zoneless": "interacted = true" }, properties: { "attr.data-appearance": "context.appearance", "class._bar": "context.bar", "class._closeable": "context.closable", "style.--tui-offset.px": "context.offset" } }, viewQueries: [{ propertyName: "stops", predicate: ["stops"], descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiScrollRef }, { directive: TuiSheetDialogClose, outputs: ["tuiSheetDialogClose", "tuiSheetDialogClose"] }], ngImport: i0, template: "<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n", styles: [":host{scrollbar-width:none;position:sticky;display:flex;inset-inline-start:0;inline-size:100%;max-inline-size:40rem;block-size:calc(100% - max(var(--tui-offset),env(safe-area-inset-top)));flex-direction:column;font:var(--tui-typography-body-m);overflow-y:scroll;overscroll-behavior:none;scroll-snap-type:y mandatory;margin:max(var(--tui-offset),env(safe-area-inset-top)) auto 0;border-radius:.75rem .75rem 0 0;box-shadow:0 5rem var(--tui-background-elevation-1);--t-top: 0}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}@supports (-webkit-touch-callout: none){:host{overscroll-behavior:contain}}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide;animation-timing-function:var(--tui-curve-expressive-exit)}:host.tui-enter{animation-duration:calc(var(--tui-duration) / 6 * 7);animation-timing-function:cubic-bezier(.1,.8,.5,1)}:host:before{position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;content:\"\";z-index:-1}:host._bar{--t-top: 1.5rem}:host._bar .t-bar{display:block}:host._closeable{display:block}:host._closeable .t-stops{display:flex}:host[data-appearance~=fullscreen]{display:block}:host[data-appearance~=fullscreen] .t-sheet{min-block-size:100%}:host ::ng-deep tui-data-list[data-size]{padding:0}:host ::ng-deep tui-data-list[data-size] [tuiOption][data-size]{box-sizing:content-box;border-radius:0}.t-stops{display:none;block-size:100%;scroll-snap-stop:always;scroll-snap-align:start;pointer-events:none}.t-stop{position:relative;inset-block-start:env(safe-area-inset-bottom);scroll-snap-stop:normal;scroll-snap-align:start;block-size:1rem;inline-size:1rem}.t-sheet{display:flex;inline-size:100%;flex-direction:column;box-shadow:var(--tui-shadow-small);border-radius:inherit;padding:0 var(--tui-padding-inline);margin-block-start:auto;background:var(--tui-background-elevation-1);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start;--tui-padding-inline: 1rem}.t-bar{position:sticky;z-index:1;display:none;inset-block-start:0;block-size:1.5rem;margin:0 calc(-1 * var(--tui-padding-inline));border-radius:inherit;background:var(--tui-background-elevation-1)}.t-bar:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";inset-block-start:.5rem;inline-size:2rem;block-size:.25rem;background:var(--tui-border-normal);border-radius:1rem}.t-content{position:relative;display:flex;flex-direction:column;flex-grow:1;border-radius:inherit;isolation:isolate;padding-block-end:max(1.5rem,env(safe-area-inset-bottom))}.t-content:after{content:\"\";position:relative;z-index:-1;display:block;inset-block-start:max(1.5rem,env(safe-area-inset-bottom));scroll-snap-stop:always;scroll-snap-align:end;border-image:conic-gradient(var(--tui-background-elevation-1) 0 0) fill 0/0/0 100vh 100vh}* ::ng-deep>header,* ::ng-deep>[tuiSlides]>*>header,* ::ng-deep>ng-component>header,* ::ng-deep>ng-component>[tuiSlides]>*>header{position:sticky;z-index:1;inset-block-start:var(--t-top);margin:0 calc(-1 * var(--tui-padding-inline));padding:.75rem var(--tui-padding-inline);border-radius:inherit;background:var(--tui-background-elevation-1);font:var(--tui-typography-heading-h6)}* ::ng-deep>footer:not([tuiFloatingContainer]),* ::ng-deep>[tuiSlides]>*>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>[tuiSlides]>*>footer:not([tuiFloatingContainer]){display:flex;flex-direction:column-reverse;gap:.5rem;margin-block-start:1rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],label[tuiButton],a[tuiIconButton],button[tuiIconButton],label[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
90
  }
75
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSheetDialogComponent, decorators: [{
76
92
  type: Component,
77
- args: [{ selector: 'tui-sheet-dialog', imports: [PolymorpheusOutlet, TuiButton, WaResizeObserver], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated, TuiScrollRef], host: {
93
+ args: [{ selector: 'tui-sheet-dialog', imports: [PolymorpheusOutlet, TuiButton, WaResizeObserver], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
94
+ TuiAnimated,
95
+ TuiScrollRef,
96
+ { directive: TuiSheetDialogClose, outputs: ['tuiSheetDialogClose'] },
97
+ ], host: {
78
98
  '[attr.data-appearance]': 'context.appearance',
79
99
  '[class._bar]': 'context.bar',
80
100
  '[class._closeable]': 'context.closable',
81
101
  '[style.--tui-offset.px]': 'context.offset',
82
102
  '(click.self)': 'close$.next()',
83
- '(document:touchcancel.zoneless)': 'onPointerChange(-1)',
84
- '(document:touchend.zoneless)': 'onPointerChange(-1)',
85
- '(document:touchstart.passive.zoneless)': 'onPointerChange(1)',
86
- '(scroll.zoneless)': 'onPointerChange(0)',
103
+ '(document:touchstart.passive.zoneless)': 'interacted = true',
104
+ '(tuiSheetDialogClose)': 'close$.next()',
87
105
  '(wheel.passive.zoneless)': 'interacted = true',
88
- }, template: "<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n", styles: [":host{scrollbar-width:none;position:sticky;display:flex;inset-inline-start:0;inline-size:100%;max-inline-size:40rem;block-size:calc(100% - max(var(--tui-offset),env(safe-area-inset-top)));flex-direction:column;font:var(--tui-typography-body-m);overflow-y:scroll;overscroll-behavior:none;scroll-snap-type:y mandatory;margin:max(var(--tui-offset),env(safe-area-inset-top)) auto 0;border-radius:.75rem .75rem 0 0;box-shadow:0 5rem var(--tui-background-elevation-1);--t-top: 0}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}@supports (-webkit-touch-callout: none){:host{overscroll-behavior:contain}}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide;animation-timing-function:var(--tui-curve-expressive-exit)}:host.tui-enter{animation-duration:calc(var(--tui-duration) / .6);animation-timing-function:var(--tui-curve-expressive-standard)}:host:before{position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;content:\"\";z-index:-1}:host._bar{--t-top: 1.5rem}:host._bar .t-bar{display:block}:host._closeable{display:block}:host._closeable .t-stops{display:flex}:host[data-appearance~=fullscreen]{display:block}:host[data-appearance~=fullscreen] .t-sheet{min-block-size:100%}:host ::ng-deep tui-data-list[data-size]{padding:0}:host ::ng-deep tui-data-list[data-size] [tuiOption][data-size]{box-sizing:content-box;border-radius:0}.t-stops{display:none;block-size:100%;scroll-snap-stop:always;scroll-snap-align:start;pointer-events:none}.t-stop{position:relative;inset-block-start:env(safe-area-inset-bottom);scroll-snap-stop:normal;scroll-snap-align:start;block-size:1rem;inline-size:1rem}.t-sheet{display:flex;inline-size:100%;flex-direction:column;box-shadow:var(--tui-shadow-small);border-radius:inherit;padding:0 var(--tui-padding-inline);margin-block-start:auto;background:var(--tui-background-elevation-1);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start;--tui-padding-inline: 1rem}.t-bar{position:sticky;z-index:1;display:none;inset-block-start:0;block-size:1.5rem;margin:0 calc(-1 * var(--tui-padding-inline));border-radius:inherit;background:var(--tui-background-elevation-1)}.t-bar:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";inset-block-start:.5rem;inline-size:2rem;block-size:.25rem;background:var(--tui-border-normal);border-radius:1rem}.t-content{position:relative;display:flex;flex-direction:column;flex-grow:1;border-radius:inherit;isolation:isolate;padding-block-end:max(1.5rem,env(safe-area-inset-bottom))}.t-content:after{content:\"\";position:relative;z-index:-1;display:block;inset-block-start:max(1.5rem,env(safe-area-inset-bottom));scroll-snap-stop:always;scroll-snap-align:end;border-image:conic-gradient(var(--tui-background-elevation-1) 0 0) fill 0/0/0 100vh 100vh}* ::ng-deep>header,* ::ng-deep>[tuiSlides]>*>header,* ::ng-deep>ng-component>header,* ::ng-deep>ng-component>[tuiSlides]>*>header{position:sticky;z-index:1;inset-block-start:var(--t-top);margin:0 calc(-1 * var(--tui-padding-inline));padding:.75rem var(--tui-padding-inline);border-radius:inherit;background:var(--tui-background-elevation-1);font:var(--tui-typography-heading-h6)}* ::ng-deep>footer:not([tuiFloatingContainer]),* ::ng-deep>[tuiSlides]>*>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>[tuiSlides]>*>footer:not([tuiFloatingContainer]){display:flex;flex-direction:column-reverse;gap:.5rem;margin-block-start:1rem}\n"] }]
106
+ }, template: "<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n", styles: [":host{scrollbar-width:none;position:sticky;display:flex;inset-inline-start:0;inline-size:100%;max-inline-size:40rem;block-size:calc(100% - max(var(--tui-offset),env(safe-area-inset-top)));flex-direction:column;font:var(--tui-typography-body-m);overflow-y:scroll;overscroll-behavior:none;scroll-snap-type:y mandatory;margin:max(var(--tui-offset),env(safe-area-inset-top)) auto 0;border-radius:.75rem .75rem 0 0;box-shadow:0 5rem var(--tui-background-elevation-1);--t-top: 0}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}@supports (-webkit-touch-callout: none){:host{overscroll-behavior:contain}}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide;animation-timing-function:var(--tui-curve-expressive-exit)}:host.tui-enter{animation-duration:calc(var(--tui-duration) / 6 * 7);animation-timing-function:cubic-bezier(.1,.8,.5,1)}:host:before{position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;content:\"\";z-index:-1}:host._bar{--t-top: 1.5rem}:host._bar .t-bar{display:block}:host._closeable{display:block}:host._closeable .t-stops{display:flex}:host[data-appearance~=fullscreen]{display:block}:host[data-appearance~=fullscreen] .t-sheet{min-block-size:100%}:host ::ng-deep tui-data-list[data-size]{padding:0}:host ::ng-deep tui-data-list[data-size] [tuiOption][data-size]{box-sizing:content-box;border-radius:0}.t-stops{display:none;block-size:100%;scroll-snap-stop:always;scroll-snap-align:start;pointer-events:none}.t-stop{position:relative;inset-block-start:env(safe-area-inset-bottom);scroll-snap-stop:normal;scroll-snap-align:start;block-size:1rem;inline-size:1rem}.t-sheet{display:flex;inline-size:100%;flex-direction:column;box-shadow:var(--tui-shadow-small);border-radius:inherit;padding:0 var(--tui-padding-inline);margin-block-start:auto;background:var(--tui-background-elevation-1);box-sizing:border-box;scroll-snap-stop:always;scroll-snap-align:start;--tui-padding-inline: 1rem}.t-bar{position:sticky;z-index:1;display:none;inset-block-start:0;block-size:1.5rem;margin:0 calc(-1 * var(--tui-padding-inline));border-radius:inherit;background:var(--tui-background-elevation-1)}.t-bar:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";inset-block-start:.5rem;inline-size:2rem;block-size:.25rem;background:var(--tui-border-normal);border-radius:1rem}.t-content{position:relative;display:flex;flex-direction:column;flex-grow:1;border-radius:inherit;isolation:isolate;padding-block-end:max(1.5rem,env(safe-area-inset-bottom))}.t-content:after{content:\"\";position:relative;z-index:-1;display:block;inset-block-start:max(1.5rem,env(safe-area-inset-bottom));scroll-snap-stop:always;scroll-snap-align:end;border-image:conic-gradient(var(--tui-background-elevation-1) 0 0) fill 0/0/0 100vh 100vh}* ::ng-deep>header,* ::ng-deep>[tuiSlides]>*>header,* ::ng-deep>ng-component>header,* ::ng-deep>ng-component>[tuiSlides]>*>header{position:sticky;z-index:1;inset-block-start:var(--t-top);margin:0 calc(-1 * var(--tui-padding-inline));padding:.75rem var(--tui-padding-inline);border-radius:inherit;background:var(--tui-background-elevation-1);font:var(--tui-typography-heading-h6)}* ::ng-deep>footer:not([tuiFloatingContainer]),* ::ng-deep>[tuiSlides]>*>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>footer:not([tuiFloatingContainer]),* ::ng-deep>ng-component>[tuiSlides]>*>footer:not([tuiFloatingContainer]){display:flex;flex-direction:column-reverse;gap:.5rem;margin-block-start:1rem}\n"] }]
89
107
  }], ctorParameters: () => [] });
90
108
 
91
109
  const TUI_SHEET_DIALOG_DEFAULT_OPTIONS = {
@@ -173,5 +191,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
173
191
  * Generated bundle index. Do not edit.
174
192
  */
175
193
 
176
- export { TUI_SHEET_DIALOG_DEFAULT_OPTIONS, TUI_SHEET_DIALOG_OPTIONS, TuiSheetDialog, TuiSheetDialogComponent, TuiSheetDialogService, tuiSheetDialogOptionsProvider };
194
+ export { TUI_SHEET_DIALOG_DEFAULT_OPTIONS, TUI_SHEET_DIALOG_OPTIONS, TuiSheetDialog, TuiSheetDialogClose, TuiSheetDialogComponent, TuiSheetDialogService, tuiSheetDialogOptionsProvider };
177
195
  //# sourceMappingURL=taiga-ui-addon-mobile-components-sheet-dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-sheet-dialog.mjs","sources":["../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.component.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.template.html","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.options.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.service.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.directive.ts","../../../projects/addon-mobile/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.ts"],"sourcesContent":["import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n viewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiCloseWatcher, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiScrollRef} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_DIALOGS_CLOSE} from '@taiga-ui/core/portals/dialog';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {exhaustMap, filter, isObservable, map, merge, of, Subject, take} from 'rxjs';\n\nimport {type TuiSheetDialogOptions} from './sheet-dialog.options';\n\nconst REQUIRED_ERROR = new Error(ngDevMode ? 'Required dialog was dismissed' : '');\n\n@Component({\n selector: 'tui-sheet-dialog',\n imports: [PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './sheet-dialog.template.html',\n styleUrl: './sheet-dialog.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiScrollRef],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[class._bar]': 'context.bar',\n '[class._closeable]': 'context.closable',\n '[style.--tui-offset.px]': 'context.offset',\n '(click.self)': 'close$.next()',\n '(document:touchcancel.zoneless)': 'onPointerChange(-1)',\n '(document:touchend.zoneless)': 'onPointerChange(-1)',\n '(document:touchstart.passive.zoneless)': 'onPointerChange(1)',\n '(scroll.zoneless)': 'onPointerChange(0)',\n '(wheel.passive.zoneless)': 'interacted = true',\n },\n})\nexport class TuiSheetDialogComponent<I> {\n private readonly stops = viewChildren('stops', {read: ElementRef});\n private readonly el = tuiInjectElement();\n private pointers = 0;\n\n protected readonly context =\n injectContext<TuiPortalContext<TuiSheetDialogOptions<I>, any>>();\n\n protected readonly close$ = new Subject<void>();\n protected interacted = false;\n\n protected readonly $ = merge(\n this.close$,\n tuiCloseWatcher(),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(\n tuiZonefull(),\n exhaustMap(() => {\n if (isObservable(this.context.closable)) {\n if (this.el.scrollTop <= 0) {\n this.el.scrollTo({top: this.initial, behavior: 'smooth'});\n }\n\n return this.context.closable.pipe(take(1));\n }\n\n return of(this.context.closable);\n }),\n filter(Boolean),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.close());\n\n constructor() {\n afterNextRender(() => this.onResize());\n }\n\n // Re-pin async content to the initial snap; mandatory scroll-snap jumps to the bottom otherwise.\n protected onResize(): void {\n if (!this.interacted) {\n this.el.scrollTop = this.initial || 0;\n }\n }\n\n protected onPointerChange(delta: number): void {\n this.interacted = this.interacted || !!delta;\n this.pointers = Math.max(this.pointers + delta, 0);\n\n if (!this.pointers && this.el.scrollTop <= 0 && this.interacted) {\n this.close$.next();\n }\n }\n\n private get initial(): number | undefined {\n return this.context.closable\n ? this.stops()\n .map((e) => e.nativeElement.offsetTop - this.context.offset)\n .concat(this.el.clientHeight ?? Infinity)[this.context.initial]\n : 0;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type Observable} from 'rxjs';\n\nexport interface TuiSheetDialogOptions<I = undefined> {\n readonly appearance: string;\n readonly closable: Observable<boolean> | boolean;\n readonly data: I extends void ? undefined : I;\n readonly initial: number;\n readonly label: string;\n readonly offset: number;\n readonly stops: readonly string[];\n readonly bar: boolean;\n readonly required: boolean;\n /**\n * Address-bar (`<meta name=\"theme-color\">`) color applied while the sheet is\n * open, matching the dimmed backdrop. Pass an empty string to leave the\n * address bar untouched (e.g. apps that manage `theme-color` themselves, or\n * need a value that tracks dark mode).\n */\n readonly themeColor: string;\n}\n\nexport const TUI_SHEET_DIALOG_DEFAULT_OPTIONS: TuiSheetDialogOptions = {\n label: '',\n appearance: '',\n stops: [],\n initial: 0,\n offset: 16,\n closable: true,\n data: undefined,\n bar: true,\n required: false,\n themeColor: '#404040',\n};\n\n/**\n * Default parameters for mobile dialog component\n */\nexport const [TUI_SHEET_DIALOG_OPTIONS, tuiSheetDialogOptionsProvider] = tuiCreateOptions(\n TUI_SHEET_DIALOG_DEFAULT_OPTIONS,\n);\n","import {inject, Injectable} from '@angular/core';\nimport {Meta} from '@angular/platform-browser';\nimport {type TuiModalComponent, TuiModalService} from '@taiga-ui/core/portals/modal';\nimport {type PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiSheetDialogComponent} from './sheet-dialog.component';\nimport {\n TUI_SHEET_DIALOG_OPTIONS,\n type TuiSheetDialogOptions,\n} from './sheet-dialog.options';\n\nconst THEME_COLOR = 'name=\"theme-color\"';\n\n@Injectable({providedIn: 'root'})\nexport class TuiSheetDialogService extends TuiModalService<TuiSheetDialogOptions<any>> {\n private readonly meta = inject(Meta);\n private initial = '';\n private count = 0;\n\n protected readonly options = inject(TUI_SHEET_DIALOG_OPTIONS);\n protected readonly content = TuiSheetDialogComponent;\n\n protected override add(\n component: PolymorpheusComponent<TuiModalComponent<TuiSheetDialogOptions>>,\n ): () => void {\n // Read the live tag at open time, not at construction: a color set later\n // (an app-level dark mode effect) would otherwise be lost on revert.\n if (!this.count++ && this.options.themeColor) {\n this.initial = this.meta.getTag(THEME_COLOR)?.content ?? '';\n this.meta.updateTag({\n name: 'theme-color',\n content: this.options.themeColor,\n });\n }\n\n const cleanup = super.add(component);\n\n return () => {\n cleanup();\n\n if (--this.count || !this.options.themeColor) {\n return;\n }\n\n if (this.initial) {\n this.meta.updateTag({name: 'theme-color', content: this.initial});\n } else {\n this.meta.removeTag(THEME_COLOR);\n }\n };\n }\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiSheetDialogOptions} from './sheet-dialog.options';\nimport {TuiSheetDialogService} from './sheet-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiSheetDialog]',\n providers: [tuiAsPortal(TuiSheetDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiSheetDialogOptions', 'open: tuiSheetDialog'],\n outputs: ['openChange: tuiSheetDialogChange'],\n },\n ],\n})\nexport class TuiSheetDialog {\n public readonly tuiSheetDialogOptions = input<Partial<TuiSheetDialogOptions>>({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-sheet-dialog.mjs","sources":["../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog-close.directive.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.component.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.template.html","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.options.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.service.ts","../../../projects/addon-mobile/components/sheet-dialog/sheet-dialog.directive.ts","../../../projects/addon-mobile/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n bufferCount,\n filter,\n fromEvent,\n map,\n merge,\n pairwise,\n startWith,\n take,\n takeWhile,\n} from 'rxjs';\n\nimport {TuiSheetDialogComponent} from './sheet-dialog.component';\n\n@Directive({selector: '[tuiSheetDialogClose]'})\nexport class TuiSheetDialogClose {\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly sheet = inject(TuiSheetDialogComponent);\n private readonly scroll$ = fromEvent(this.el, 'scroll');\n private readonly untouched$ = merge(\n fromEvent(this.doc, 'touchstart', {passive: true}).pipe(map(() => false)),\n fromEvent(this.doc, 'touchend', {passive: true}).pipe(map(() => true)),\n fromEvent(this.doc, 'touchcancel', {passive: true}).pipe(map(() => true)),\n );\n\n private readonly swipe$ = this.scroll$.pipe(\n map(() => this.el.scrollHeight - this.el.clientHeight - this.el.scrollTop),\n // Excluding scroll due to content height changes when scrolled to the end\n filter((scroll) => Math.abs(scroll) > 10),\n map(() => this.el.scrollTop),\n pairwise(),\n map(([prev, curr]) => prev - curr),\n takeWhile((value) => value > 0),\n bufferCount(5),\n take(1),\n );\n\n private readonly release$ = this.scroll$.pipe(\n startWith(null),\n filter(() => !this.el.scrollTop),\n take(1),\n );\n\n public readonly tuiSheetDialogClose = outputFromObservable(\n merge(\n // Swipe down\n this.untouched$.pipe(\n tuiIfMap(\n () => this.swipe$,\n (untouched) => untouched && this.el.scrollTop < this.sheet.initial,\n ),\n ),\n // Wheel/let go at the end\n merge(\n this.untouched$,\n fromEvent(this.el, 'wheel').pipe(map(() => true)),\n ).pipe(tuiIfMap(() => this.release$)),\n ),\n );\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n viewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiCloseWatcher, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiScrollRef} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_DIALOGS_CLOSE} from '@taiga-ui/core/portals/dialog';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {exhaustMap, filter, isObservable, map, merge, of, Subject, take} from 'rxjs';\n\nimport {type TuiSheetDialogOptions} from './sheet-dialog.options';\nimport {TuiSheetDialogClose} from './sheet-dialog-close.directive';\n\nconst REQUIRED_ERROR = new Error(ngDevMode ? 'Required dialog was dismissed' : '');\n\n@Component({\n selector: 'tui-sheet-dialog',\n imports: [PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './sheet-dialog.template.html',\n styleUrl: './sheet-dialog.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n TuiAnimated,\n TuiScrollRef,\n {directive: TuiSheetDialogClose, outputs: ['tuiSheetDialogClose']},\n ],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[class._bar]': 'context.bar',\n '[class._closeable]': 'context.closable',\n '[style.--tui-offset.px]': 'context.offset',\n '(click.self)': 'close$.next()',\n '(document:touchstart.passive.zoneless)': 'interacted = true',\n '(tuiSheetDialogClose)': 'close$.next()',\n '(wheel.passive.zoneless)': 'interacted = true',\n },\n})\nexport class TuiSheetDialogComponent {\n private readonly stops = viewChildren('stops', {read: ElementRef});\n private readonly el = tuiInjectElement();\n\n protected readonly context = injectContext<TuiPortalContext<TuiSheetDialogOptions>>();\n protected readonly close$ = new Subject<void>();\n protected interacted = false;\n protected readonly $ = merge(\n this.close$,\n tuiCloseWatcher(),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(\n tuiZonefull(),\n exhaustMap(() => {\n if (isObservable(this.context.closable)) {\n if (this.el.scrollTop <= 0) {\n this.el.scrollTo({top: this.initial, behavior: 'smooth'});\n }\n\n return this.context.closable.pipe(take(1));\n }\n\n return of(this.context.closable);\n }),\n filter(Boolean),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.close());\n\n constructor() {\n afterNextRender(() => this.onResize());\n }\n\n public get initial(): number {\n return this.context.closable\n ? this.stops()\n .map((e) => e.nativeElement.offsetTop)\n .concat(this.el.clientHeight ?? Infinity)[this.context.initial] || 0\n : 0;\n }\n\n // Re-pin async content to the initial snap; mandatory scroll-snap jumps to the bottom otherwise.\n protected onResize(): void {\n this.el.scrollTop = this.interacted ? this.el.scrollTop : this.initial;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","<div class=\"t-stops\">\n @for (stop of context.stops; track stop) {\n <div\n #stops\n class=\"t-stop\"\n [style.margin-block-start]=\"stop\"\n ></div>\n }\n</div>\n<div\n class=\"t-sheet\"\n (waResizeObserver)=\"onResize()\"\n>\n <div class=\"t-bar\"></div>\n <div class=\"t-content\">\n @if (context.label) {\n <header\n [id]=\"context.id\"\n [innerHTML]=\"context.label\"\n ></header>\n }\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable) {\n <footer>\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data || 'OK' }}\n </button>\n </footer>\n }\n </ng-container>\n </div>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type Observable} from 'rxjs';\n\nexport interface TuiSheetDialogOptions<I = undefined> {\n readonly appearance: string;\n readonly closable: Observable<boolean> | boolean;\n readonly data: I extends void ? undefined : I;\n readonly initial: number;\n readonly label: string;\n readonly offset: number;\n readonly stops: readonly string[];\n readonly bar: boolean;\n readonly required: boolean;\n /**\n * Address-bar (`<meta name=\"theme-color\">`) color applied while the sheet is\n * open, matching the dimmed backdrop. Pass an empty string to leave the\n * address bar untouched (e.g. apps that manage `theme-color` themselves, or\n * need a value that tracks dark mode).\n */\n readonly themeColor: string;\n}\n\nexport const TUI_SHEET_DIALOG_DEFAULT_OPTIONS: TuiSheetDialogOptions = {\n label: '',\n appearance: '',\n stops: [],\n initial: 0,\n offset: 16,\n closable: true,\n data: undefined,\n bar: true,\n required: false,\n themeColor: '#404040',\n};\n\n/**\n * Default parameters for mobile dialog component\n */\nexport const [TUI_SHEET_DIALOG_OPTIONS, tuiSheetDialogOptionsProvider] = tuiCreateOptions(\n TUI_SHEET_DIALOG_DEFAULT_OPTIONS,\n);\n","import {inject, Injectable} from '@angular/core';\nimport {Meta} from '@angular/platform-browser';\nimport {type TuiModalComponent, TuiModalService} from '@taiga-ui/core/portals/modal';\nimport {type PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiSheetDialogComponent} from './sheet-dialog.component';\nimport {\n TUI_SHEET_DIALOG_OPTIONS,\n type TuiSheetDialogOptions,\n} from './sheet-dialog.options';\n\nconst THEME_COLOR = 'name=\"theme-color\"';\n\n@Injectable({providedIn: 'root'})\nexport class TuiSheetDialogService extends TuiModalService<TuiSheetDialogOptions<any>> {\n private readonly meta = inject(Meta);\n private initial = '';\n private count = 0;\n\n protected readonly options = inject(TUI_SHEET_DIALOG_OPTIONS);\n protected readonly content = TuiSheetDialogComponent;\n\n protected override add(\n component: PolymorpheusComponent<TuiModalComponent<TuiSheetDialogOptions>>,\n ): () => void {\n // Read the live tag at open time, not at construction: a color set later\n // (an app-level dark mode effect) would otherwise be lost on revert.\n if (!this.count++ && this.options.themeColor) {\n this.initial = this.meta.getTag(THEME_COLOR)?.content ?? '';\n this.meta.updateTag({\n name: 'theme-color',\n content: this.options.themeColor,\n });\n }\n\n const cleanup = super.add(component);\n\n return () => {\n cleanup();\n\n if (--this.count || !this.options.themeColor) {\n return;\n }\n\n if (this.initial) {\n this.meta.updateTag({name: 'theme-color', content: this.initial});\n } else {\n this.meta.removeTag(THEME_COLOR);\n }\n };\n }\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiSheetDialogOptions} from './sheet-dialog.options';\nimport {TuiSheetDialogService} from './sheet-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiSheetDialog]',\n providers: [tuiAsPortal(TuiSheetDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiSheetDialogOptions', 'open: tuiSheetDialog'],\n outputs: ['openChange: tuiSheetDialogChange'],\n },\n ],\n})\nexport class TuiSheetDialog {\n public readonly tuiSheetDialogOptions = input<Partial<TuiSheetDialogOptions>>({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.TuiSheetDialogClose","i1"],"mappings":"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"}
@@ -47,11 +47,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
47
47
 
48
48
  class Styles {
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-swipe-actions-5.25.0"], ngImport: i0, template: '', isInline: true, styles: ["tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.25.0\"]){scroll-snap-type:none}tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.25.0\"])>*{animation:tuiOnboardingEnter calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance),tuiOnboardingShow var(--tui-duration) linear calc(var(--tui-duration) / .6),tuiOnboardingExit calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance) calc(calc(var(--tui-duration) / .6) + var(--tui-duration))}@keyframes tuiOnboardingEnter{0%{transform:translate(0)}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingShow{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingExit{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(0)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-swipe-actions-5.26.0"], ngImport: i0, template: '', isInline: true, styles: ["tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.26.0\"]){scroll-snap-type:none}tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.26.0\"])>*{animation:tuiOnboardingEnter calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance),tuiOnboardingShow var(--tui-duration) linear calc(var(--tui-duration) / .6),tuiOnboardingExit calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance) calc(calc(var(--tui-duration) / .6) + var(--tui-duration))}@keyframes tuiOnboardingEnter{0%{transform:translate(0)}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingShow{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingExit{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(0)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
53
53
  type: Component,
54
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-swipe-actions-${TUI_VERSION}`, styles: ["tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.25.0\"]){scroll-snap-type:none}tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.25.0\"])>*{animation:tuiOnboardingEnter calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance),tuiOnboardingShow var(--tui-duration) linear calc(var(--tui-duration) / .6),tuiOnboardingExit calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance) calc(calc(var(--tui-duration) / .6) + var(--tui-duration))}@keyframes tuiOnboardingEnter{0%{transform:translate(0)}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingShow{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingExit{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(0)}}\n"] }]
54
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-swipe-actions-${TUI_VERSION}`, styles: ["tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.26.0\"]){scroll-snap-type:none}tui-swipe-actions._onboarding:where(*[data-tui-version=\"5.26.0\"])>*{animation:tuiOnboardingEnter calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance),tuiOnboardingShow var(--tui-duration) linear calc(var(--tui-duration) / .6),tuiOnboardingExit calc(var(--tui-duration) / .6) var(--tui-curve-expressive-entrance) calc(calc(var(--tui-duration) / .6) + var(--tui-duration))}@keyframes tuiOnboardingEnter{0%{transform:translate(0)}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingShow{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(calc(-1px * var(--t-actions-width)))}}@keyframes tuiOnboardingExit{0%{transform:translate(calc(-1px * var(--t-actions-width)))}to{transform:translate(0)}}\n"] }]
55
55
  }] });
56
56
  class TuiSwipeActionsOnboarding {
57
57
  constructor() {
@@ -59,7 +59,7 @@ class TuiSwipeActionsOnboarding {
59
59
  this.nothing = tuiWithStyles(Styles);
60
60
  }
61
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSwipeActionsOnboarding, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiSwipeActionsOnboarding, isStandalone: true, selector: "tui-swipe-actions[onboarding]", inputs: { onboarding: { classPropertyName: "onboarding", publicName: "onboarding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onboarding: "onboardingChange" }, host: { attributes: { "data-tui-version": "5.25.0" }, listeners: { "animationend": "onboarding.set($event.animationName !== \"tuiOnboardingExit\")" }, properties: { "class._onboarding": "onboarding()" } }, ngImport: i0 }); }
62
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiSwipeActionsOnboarding, isStandalone: true, selector: "tui-swipe-actions[onboarding]", inputs: { onboarding: { classPropertyName: "onboarding", publicName: "onboarding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onboarding: "onboardingChange" }, host: { attributes: { "data-tui-version": "5.26.0" }, listeners: { "animationend": "onboarding.set($event.animationName !== \"tuiOnboardingExit\")" }, properties: { "class._onboarding": "onboarding()" } }, ngImport: i0 }); }
63
63
  }
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiSwipeActionsOnboarding, decorators: [{
65
65
  type: Directive,
@@ -69,13 +69,13 @@ class TuiDropdownMobileComponent {
69
69
  return this.dropdown.el.contains(tuiGetFocused(this.doc));
70
70
  }
71
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDropdownMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiDropdownMobileComponent, isStandalone: true, selector: "tui-dropdown-mobile", host: { attributes: { "data-tui-version": "5.25.0" }, listeners: { "document:click.zoneless.capture": "onClick($event)", "pointerdown.prevent": "0", "visualViewport>resize.zoneless": "refresh()", "visualViewport>scroll.zoneless": "refresh()", "window>scroll.zoneless.capture": "refresh()" } }, hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiActiveZone }], ngImport: i0, template: `
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiDropdownMobileComponent, isStandalone: true, selector: "tui-dropdown-mobile", host: { attributes: { "data-tui-version": "5.26.0" }, listeners: { "document:click.zoneless.capture": "onClick($event)", "pointerdown.prevent": "0", "visualViewport>resize.zoneless": "refresh()", "visualViewport>scroll.zoneless": "refresh()", "window>scroll.zoneless.capture": "refresh()" } }, hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiActiveZone }], ngImport: i0, template: `
73
73
  <div class="t-container">
74
74
  <ng-container *polymorpheusOutlet="dropdown.content() as text; context: ctx">
75
75
  {{ text }}
76
76
  </ng-container>
77
77
  </div>
78
- `, isInline: true, styles: ["tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]){scrollbar-width:none;position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;visibility:visible!important;background:var(--tui-background-base);overscroll-behavior:contain;overflow:auto;box-shadow:0 -.5rem .5rem var(--tui-background-base),0 10rem var(--tui-background-base),0 20rem var(--tui-background-base),0 30rem var(--tui-background-base);box-sizing:border-box;padding-block-end:env(safe-area-inset-bottom);pointer-events:auto}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]).tui-enter,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]):after{content:\"\";display:block;block-size:1px}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container{scrollbar-width:none;position:sticky;inset-block-start:0;block-size:100%;overflow:auto;padding:0 var(--tui-padding-inline);touch-action:pan-y!important;--tui-padding-inline: 1rem}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container tui-data-list{padding:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container tui-data-list [tuiOption]{box-sizing:content-box;border-radius:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) [tuiDropdownButton][tuiDropdownButton]{position:fixed;display:inline-flex;inset-inline-end:1rem;inset-block-end:max(1rem,env(safe-area-inset-bottom))}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]){touch-action:none;visibility:hidden}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) *{touch-action:inherit;visibility:inherit}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root{visibility:visible}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root .t-root-content,.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root tui-dialogs{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
+ `, isInline: true, styles: ["tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]){scrollbar-width:none;position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;visibility:visible!important;background:var(--tui-background-base);overscroll-behavior:contain;overflow:auto;box-shadow:0 -.5rem .5rem var(--tui-background-base),0 10rem var(--tui-background-base),0 20rem var(--tui-background-base),0 30rem var(--tui-background-base);box-sizing:border-box;padding-block-end:env(safe-area-inset-bottom);pointer-events:auto}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]).tui-enter,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]):after{content:\"\";display:block;block-size:1px}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container{scrollbar-width:none;position:sticky;inset-block-start:0;block-size:100%;overflow:auto;padding:0 var(--tui-padding-inline);touch-action:pan-y!important;--tui-padding-inline: 1rem}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container tui-data-list{padding:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container tui-data-list [tuiOption]{box-sizing:content-box;border-radius:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) [tuiDropdownButton][tuiDropdownButton]{position:fixed;display:inline-flex;inset-inline-end:1rem;inset-block-end:max(1rem,env(safe-area-inset-bottom))}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]){touch-action:none;visibility:hidden}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) *{touch-action:inherit;visibility:inherit}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root{visibility:visible}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root .t-root-content,.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root tui-dialogs{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDropdownMobileComponent, decorators: [{
81
81
  type: Component,
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
92
92
  '(visualViewport>resize.zoneless)': 'refresh()',
93
93
  '(visualViewport>scroll.zoneless)': 'refresh()',
94
94
  '(window>scroll.zoneless.capture)': 'refresh()',
95
- }, styles: ["tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]){scrollbar-width:none;position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;visibility:visible!important;background:var(--tui-background-base);overscroll-behavior:contain;overflow:auto;box-shadow:0 -.5rem .5rem var(--tui-background-base),0 10rem var(--tui-background-base),0 20rem var(--tui-background-base),0 30rem var(--tui-background-base);box-sizing:border-box;padding-block-end:env(safe-area-inset-bottom);pointer-events:auto}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]).tui-enter,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]):after{content:\"\";display:block;block-size:1px}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container{scrollbar-width:none;position:sticky;inset-block-start:0;block-size:100%;overflow:auto;padding:0 var(--tui-padding-inline);touch-action:pan-y!important;--tui-padding-inline: 1rem}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container tui-data-list{padding:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"])>.t-container tui-data-list [tuiOption]{box-sizing:content-box;border-radius:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) [tuiDropdownButton][tuiDropdownButton]{position:fixed;display:inline-flex;inset-inline-end:1rem;inset-block-end:max(1rem,env(safe-area-inset-bottom))}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]){touch-action:none;visibility:hidden}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) *{touch-action:inherit;visibility:inherit}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root{visibility:visible}.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root .t-root-content,.t-dropdown-mobile:where(*[data-tui-version=\"5.25.0\"]) tui-root tui-dialogs{visibility:hidden}\n"] }]
95
+ }, styles: ["tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]){scrollbar-width:none;position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;visibility:visible!important;background:var(--tui-background-base);overscroll-behavior:contain;overflow:auto;box-shadow:0 -.5rem .5rem var(--tui-background-base),0 10rem var(--tui-background-base),0 20rem var(--tui-background-base),0 30rem var(--tui-background-base);box-sizing:border-box;padding-block-end:env(safe-area-inset-bottom);pointer-events:auto}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]).tui-enter,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]):after{content:\"\";display:block;block-size:1px}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container{scrollbar-width:none;position:sticky;inset-block-start:0;block-size:100%;overflow:auto;padding:0 var(--tui-padding-inline);touch-action:pan-y!important;--tui-padding-inline: 1rem}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container::-webkit-scrollbar,tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container::-webkit-scrollbar-thumb{display:none}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container tui-data-list{padding:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"])>.t-container tui-data-list [tuiOption]{box-sizing:content-box;border-radius:0}tui-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) [tuiDropdownButton][tuiDropdownButton]{position:fixed;display:inline-flex;inset-inline-end:1rem;inset-block-end:max(1rem,env(safe-area-inset-bottom))}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]){touch-action:none;visibility:hidden}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) *{touch-action:inherit;visibility:inherit}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root{visibility:visible}.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root .t-root-content,.t-dropdown-mobile:where(*[data-tui-version=\"5.26.0\"]) tui-root tui-dialogs{visibility:hidden}\n"] }]
96
96
  }], ctorParameters: () => [] });
97
97
 
98
98
  class TuiDropdownMobile {
@@ -13,11 +13,11 @@ const TO = [{ scale: '0', opacity: '0.12' }, { opacity: '0.12' }];
13
13
  const FROM = [{ opacity: '0.12' }, { opacity: '0' }];
14
14
  class Styles {
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-ripple-5.25.0"], ngImport: i0, template: '', isInline: true, styles: [".tui-ripple:where(*[data-tui-version=\"5.25.0\"]){position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-ripple-5.26.0"], ngImport: i0, template: '', isInline: true, styles: [".tui-ripple:where(*[data-tui-version=\"5.26.0\"]){position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
19
19
  type: Component,
20
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-ripple-${TUI_VERSION}`, styles: [".tui-ripple:where(*[data-tui-version=\"5.25.0\"]){position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
20
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-ripple-${TUI_VERSION}`, styles: [".tui-ripple:where(*[data-tui-version=\"5.26.0\"]){position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
21
21
  }] });
22
22
  class TuiRipple {
23
23
  constructor() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "5.25.0",
3
+ "version": "5.26.0",
4
4
  "description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
5
5
  "keywords": [
6
6
  "angular",
@@ -40,14 +40,14 @@
40
40
  "types": "./components/index.d.ts",
41
41
  "default": "./fesm2022/taiga-ui-addon-mobile-components.mjs"
42
42
  },
43
- "./directives": {
44
- "types": "./directives/index.d.ts",
45
- "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
46
- },
47
43
  "./services": {
48
44
  "types": "./services/index.d.ts",
49
45
  "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
50
46
  },
47
+ "./directives": {
48
+ "types": "./directives/index.d.ts",
49
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
50
+ },
51
51
  "./components/bottom-sheet": {
52
52
  "types": "./components/bottom-sheet/index.d.ts",
53
53
  "default": "./fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs"
@@ -120,10 +120,10 @@
120
120
  "@ng-web-apis/common": "^5.3.0",
121
121
  "@ng-web-apis/platform": "^5.3.0",
122
122
  "@ng-web-apis/resize-observer": "^5.3.0",
123
- "@taiga-ui/cdk": "5.25.0",
124
- "@taiga-ui/core": "5.25.0",
125
- "@taiga-ui/kit": "5.25.0",
126
- "@taiga-ui/layout": "5.25.0",
123
+ "@taiga-ui/cdk": "5.26.0",
124
+ "@taiga-ui/core": "5.26.0",
125
+ "@taiga-ui/kit": "5.26.0",
126
+ "@taiga-ui/layout": "5.26.0",
127
127
  "@taiga-ui/polymorpheus": "^5.0.1",
128
128
  "rxjs": ">=7.0.0"
129
129
  },
@@ -16,9 +16,7 @@
16
16
 
17
17
  --t-tabbar-offset: max(env(safe-area-inset-bottom), 1.25rem);
18
18
  --t-tabbar-active: rgba(255, 255, 255, 0.9);
19
- // the tab bar has its own bevel lighting angles and keeps
20
- // the light backdrop filter in both themes
21
- --t-glass-filter: blur(0.25rem) saturate(6) brightness(1.05);
19
+ // the tab bar has its own bevel lighting angles
22
20
  --t-glass-bevel-filter: brightness(1.05);
23
21
  --t-glass-bevel: linear-gradient(227deg, rgba(255, 255, 255, 0) 6%, rgba(255, 255, 255, 0.35) 21%, rgba(255, 255, 255, 0.85) 40%, rgba(255, 255, 255, 0.95) 45%, #fff 48%, #fff 50%, #fff 52%, rgba(255, 255, 255, 0.95) 55%, rgba(255, 255, 255, 0.85) 60%, rgba(255, 255, 255, 0.35) 80%, rgba(255, 255, 255, 0) 95%);
24
22
 
@@ -147,7 +145,6 @@
147
145
 
148
146
  --tui-active-color: var(--tui-text-primary);
149
147
  --t-tabbar-active: rgba(255, 255, 255, 0.18);
150
- --t-glass-filter: blur(0.25rem) saturate(6) brightness(1.05);
151
148
  --t-glass-bevel-filter: brightness(1.05);
152
149
  --t-glass-bevel: linear-gradient(-6deg, rgba(255, 255, 255, 0.15) 5%, rgba(255, 255, 255, 0.1) 20%, rgba(255, 255, 255, 0.04) 40%, rgba(255, 255, 255, 0.03) 45%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, 0.03) 55%, rgba(255, 255, 255, 0.04) 60%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0.15) 95%);
153
150
  }