@taiga-ui/addon-mobile 4.52.0-canary.536e4ff → 4.52.0-canary.55ce829

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/components/sheet-dialog/sheet-dialog.options.d.ts +1 -1
  2. package/directives/dropdown-mobile/dropdown-mobile.component.d.ts +9 -13
  3. package/directives/dropdown-mobile/dropdown-mobile.directive.d.ts +1 -2
  4. package/directives/dropdown-sheet/dropdown-sheet.component.d.ts +14 -0
  5. package/directives/dropdown-sheet/dropdown-sheet.directive.d.ts +6 -0
  6. package/directives/dropdown-sheet/index.d.ts +2 -0
  7. package/directives/index.d.ts +1 -1
  8. package/directives/ripple/ripple.directive.d.ts +1 -1
  9. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs +7 -8
  10. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +9 -9
  12. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +6 -7
  14. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs.map +1 -1
  15. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +8 -10
  16. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs +9 -10
  18. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +21 -21
  20. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +22 -23
  22. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs +9 -9
  24. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +13 -14
  26. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +66 -89
  28. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs +83 -0
  30. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs.map +1 -0
  31. package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +8 -8
  32. package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs +6 -6
  34. package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs +18 -39
  36. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs +5 -5
  38. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-addon-mobile-directives.mjs +1 -1
  40. package/fesm2022/taiga-ui-addon-mobile-services.mjs +5 -5
  41. package/fesm2022/taiga-ui-addon-mobile-services.mjs.map +1 -1
  42. package/package.json +9 -47
  43. package/styles/android/checkbox.less +2 -3
  44. package/styles/android/switch.less +0 -2
  45. package/styles/common/badge.less +2 -2
  46. package/styles/common/button.less +4 -0
  47. package/styles/common/chip.less +3 -8
  48. package/styles/common/toast.less +21 -0
  49. package/styles/ios/checkbox.less +2 -4
  50. package/styles/ios/switch.less +1 -2
  51. package/styles/taiga-ui-mobile.less +8 -0
  52. package/directives/sidebar/index.d.ts +0 -3
  53. package/directives/sidebar/sidebar.component.d.ts +0 -21
  54. package/directives/sidebar/sidebar.d.ts +0 -6
  55. package/directives/sidebar/sidebar.directive.d.ts +0 -22
  56. package/esm2022/components/bottom-sheet/bottom-sheet.component.mjs +0 -49
  57. package/esm2022/components/bottom-sheet/index.mjs +0 -2
  58. package/esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs +0 -5
  59. package/esm2022/components/index.mjs +0 -10
  60. package/esm2022/components/mobile-calendar/index.mjs +0 -5
  61. package/esm2022/components/mobile-calendar/mobile-calendar.component.mjs +0 -308
  62. package/esm2022/components/mobile-calendar/mobile-calendar.const.mjs +0 -35
  63. package/esm2022/components/mobile-calendar/mobile-calendar.providers.mjs +0 -27
  64. package/esm2022/components/mobile-calendar/mobile-calendar.strategy.mjs +0 -126
  65. package/esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs +0 -5
  66. package/esm2022/components/mobile-calendar-dropdown/index.mjs +0 -3
  67. package/esm2022/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.mjs +0 -113
  68. package/esm2022/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.mjs +0 -53
  69. package/esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +0 -5
  70. package/esm2022/components/mobile-calendar-sheet/index.mjs +0 -2
  71. package/esm2022/components/mobile-calendar-sheet/mobile-calendar-sheet.component.mjs +0 -25
  72. package/esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +0 -5
  73. package/esm2022/components/mobile-dialog/index.mjs +0 -4
  74. package/esm2022/components/mobile-dialog/mobile-dialog.component.mjs +0 -26
  75. package/esm2022/components/mobile-dialog/mobile-dialog.options.mjs +0 -17
  76. package/esm2022/components/mobile-dialog/mobile-dialog.service.mjs +0 -22
  77. package/esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs +0 -5
  78. package/esm2022/components/pull-to-refresh/index.mjs +0 -6
  79. package/esm2022/components/pull-to-refresh/loader-android/loader-android.component.mjs +0 -46
  80. package/esm2022/components/pull-to-refresh/loader-ios/loader-ios.component.mjs +0 -39
  81. package/esm2022/components/pull-to-refresh/pull-to-refresh.component.mjs +0 -51
  82. package/esm2022/components/pull-to-refresh/pull-to-refresh.providers.mjs +0 -24
  83. package/esm2022/components/pull-to-refresh/pull-to-refresh.service.mjs +0 -37
  84. package/esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +0 -5
  85. package/esm2022/components/sheet-dialog/index.mjs +0 -5
  86. package/esm2022/components/sheet-dialog/sheet-dialog.component.mjs +0 -80
  87. package/esm2022/components/sheet-dialog/sheet-dialog.directive.mjs +0 -21
  88. package/esm2022/components/sheet-dialog/sheet-dialog.options.mjs +0 -24
  89. package/esm2022/components/sheet-dialog/sheet-dialog.service.mjs +0 -38
  90. package/esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs +0 -5
  91. package/esm2022/components/swipe-action/index.mjs +0 -3
  92. package/esm2022/components/swipe-action/swipe-actions-auto-close.directive.mjs +0 -34
  93. package/esm2022/components/swipe-action/swipe-actions.component.mjs +0 -23
  94. package/esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs +0 -5
  95. package/esm2022/components/tab-bar/index.mjs +0 -5
  96. package/esm2022/components/tab-bar/tab-bar-item.component.mjs +0 -26
  97. package/esm2022/components/tab-bar/tab-bar-item.directive.mjs +0 -27
  98. package/esm2022/components/tab-bar/tab-bar.component.mjs +0 -46
  99. package/esm2022/components/tab-bar/tab-bar.mjs +0 -9
  100. package/esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs +0 -5
  101. package/esm2022/components/taiga-ui-addon-mobile-components.mjs +0 -5
  102. package/esm2022/directives/dropdown-mobile/dropdown-mobile.component.mjs +0 -98
  103. package/esm2022/directives/dropdown-mobile/dropdown-mobile.directive.mjs +0 -54
  104. package/esm2022/directives/dropdown-mobile/index.mjs +0 -3
  105. package/esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +0 -5
  106. package/esm2022/directives/elastic-sticky/elastic-sticky.directive.mjs +0 -23
  107. package/esm2022/directives/elastic-sticky/elastic-sticky.service.mjs +0 -53
  108. package/esm2022/directives/elastic-sticky/index.mjs +0 -3
  109. package/esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +0 -5
  110. package/esm2022/directives/index.mjs +0 -7
  111. package/esm2022/directives/responsive-dialog/index.mjs +0 -3
  112. package/esm2022/directives/responsive-dialog/responsive-dialog.directive.mjs +0 -21
  113. package/esm2022/directives/responsive-dialog/responsive-dialog.service.mjs +0 -34
  114. package/esm2022/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.mjs +0 -5
  115. package/esm2022/directives/ripple/index.mjs +0 -2
  116. package/esm2022/directives/ripple/ripple.directive.mjs +0 -98
  117. package/esm2022/directives/ripple/taiga-ui-addon-mobile-directives-ripple.mjs +0 -5
  118. package/esm2022/directives/sidebar/index.mjs +0 -4
  119. package/esm2022/directives/sidebar/sidebar.component.mjs +0 -45
  120. package/esm2022/directives/sidebar/sidebar.directive.mjs +0 -64
  121. package/esm2022/directives/sidebar/sidebar.mjs +0 -7
  122. package/esm2022/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.mjs +0 -5
  123. package/esm2022/directives/taiga-ui-addon-mobile-directives.mjs +0 -5
  124. package/esm2022/directives/touchable/index.mjs +0 -2
  125. package/esm2022/directives/touchable/taiga-ui-addon-mobile-directives-touchable.mjs +0 -5
  126. package/esm2022/directives/touchable/touchable.directive.mjs +0 -71
  127. package/esm2022/index.mjs +0 -4
  128. package/esm2022/services/index.mjs +0 -2
  129. package/esm2022/services/keyboard.service.mjs +0 -53
  130. package/esm2022/services/taiga-ui-addon-mobile-services.mjs +0 -5
  131. package/esm2022/taiga-ui-addon-mobile.mjs +0 -5
  132. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs +0 -114
  133. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs.map +0 -1
@@ -1,49 +1,29 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, DestroyRef, Directive, Input } from '@angular/core';
3
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, DestroyRef, Input, Directive } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
6
5
  import { tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
7
6
  import { tuiWithStyles, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
8
7
  import { TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
9
8
  import { tuiGetDuration } from '@taiga-ui/core/utils/miscellaneous';
10
- import { merge, race, switchMap, first, tap } from 'rxjs';
9
+ import { merge, fromEvent, race, switchMap, first, tap } from 'rxjs';
11
10
 
12
- const TO_KEYFRAMES = [
13
- {
14
- transform: 'scale(0)',
15
- opacity: '0.12',
16
- },
17
- {
18
- opacity: '0.12',
19
- },
20
- ];
21
- const FROM_KEYFRAMES = [
22
- {
23
- opacity: '0.12',
24
- },
25
- {
26
- opacity: '0',
27
- },
28
- ];
29
- class TuiRippleStyles {
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRippleStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRippleStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-ripple-styles" }, ngImport: i0, template: '', isInline: true, styles: [".tui-ripple{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 }); }
11
+ const TO = [{ transform: 'scale(0)', opacity: '0.12' }, { opacity: '0.12' }];
12
+ const FROM = [{ opacity: '0.12' }, { opacity: '0' }];
13
+ class Styles {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-ripple" }, ngImport: i0, template: '', isInline: true, styles: [".tui-ripple{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 }); }
32
16
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRippleStyles, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
34
18
  type: Component,
35
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
36
- class: 'tui-ripple-styles',
37
- }, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
19
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-ripple' }, styles: [".tui-ripple{position:absolute;z-index:100;opacity:.12;border-radius:100%;background:var(--tui-ripple-background, currentColor);animation-fill-mode:forwards;pointer-events:none}\n"] }]
38
20
  }] });
39
21
  class TuiRipple {
40
22
  constructor() {
41
23
  this.doc = inject(DOCUMENT);
42
24
  this.destroyRef = inject(DestroyRef);
43
- this.animationOptions = {
44
- duration: tuiGetDuration(inject(TUI_ANIMATIONS_SPEED)),
45
- };
46
- this.nothing = tuiWithStyles(TuiRippleStyles);
25
+ this.duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));
26
+ this.nothing = tuiWithStyles(Styles);
47
27
  this.tuiRipple = '';
48
28
  }
49
29
  start(x, y, target, el) {
@@ -52,11 +32,11 @@ class TuiRipple {
52
32
  return;
53
33
  }
54
34
  const ripple = this.createRipple(x, y, element.getBoundingClientRect());
55
- const touchEnd$ = merge(tuiTypedFromEvent(element, 'pointerup'), tuiTypedFromEvent(element, 'pointercancel'), tuiTypedFromEvent(element, 'pointermove'));
35
+ const touchEnd$ = merge(fromEvent(element, 'pointerup'), fromEvent(element, 'pointercancel'), fromEvent(element, 'pointermove'));
56
36
  element.appendChild(ripple);
57
- const animationEndOn$ = tuiTypedFromEvent(ripple.animate(TO_KEYFRAMES, this.animationOptions), 'finish');
58
- race(touchEnd$.pipe(switchMap(() => animationEndOn$)), animationEndOn$.pipe(switchMap(() => touchEnd$)))
59
- .pipe(first(), switchMap(() => tuiTypedFromEvent(ripple.animate(FROM_KEYFRAMES, this.animationOptions), 'finish')), first(), tap(() => element.removeChild(ripple)), takeUntilDestroyed(this.destroyRef))
37
+ const animationEnd$ = fromEvent(ripple.animate(TO, this.duration), 'finish');
38
+ race(touchEnd$.pipe(switchMap(() => animationEnd$)), animationEnd$.pipe(switchMap(() => touchEnd$)))
39
+ .pipe(first(), switchMap(() => fromEvent(ripple.animate(FROM, this.duration), 'finish')), first(), tap(() => element.removeChild(ripple)), takeUntilDestroyed(this.destroyRef))
60
40
  .subscribe();
61
41
  }
62
42
  createRipple(clientX, clientY, { width, height, top, left }) {
@@ -80,13 +60,12 @@ class TuiRipple {
80
60
  });
81
61
  return ripple;
82
62
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRipple, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
84
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiRipple, isStandalone: true, selector: "[tuiRipple]", inputs: { tuiRipple: "tuiRipple" }, host: { listeners: { "pointerdown.zoneless": "start($event.clientX, $event.clientY, $event.target, $event.currentTarget)" } }, ngImport: i0 }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRipple, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
64
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiRipple, isStandalone: true, selector: "[tuiRipple]", inputs: { tuiRipple: "tuiRipple" }, host: { listeners: { "pointerdown.zoneless": "start($event.clientX, $event.clientY, $event.target, $event.currentTarget)" } }, ngImport: i0 }); }
85
65
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRipple, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRipple, decorators: [{
87
67
  type: Directive,
88
68
  args: [{
89
- standalone: true,
90
69
  selector: '[tuiRipple]',
91
70
  host: {
92
71
  '(pointerdown.zoneless)': 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.mjs","sources":["../../../projects/addon-mobile/directives/ripple/ripple.directive.ts","../../../projects/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {first, merge, race, switchMap, tap} from 'rxjs';\n\nconst TO_KEYFRAMES = [\n {\n transform: 'scale(0)',\n opacity: '0.12',\n },\n {\n opacity: '0.12',\n },\n];\nconst FROM_KEYFRAMES = [\n {\n opacity: '0.12',\n },\n {\n opacity: '0',\n },\n];\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./ripple.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-ripple-styles',\n },\n})\nclass TuiRippleStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiRipple]',\n host: {\n '(pointerdown.zoneless)':\n 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',\n },\n})\nexport class TuiRipple {\n private readonly doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly animationOptions = {\n duration: tuiGetDuration(inject(TUI_ANIMATIONS_SPEED)),\n };\n\n protected readonly nothing = tuiWithStyles(TuiRippleStyles);\n\n @Input()\n public tuiRipple = '';\n\n protected start(x: number, y: number, target: HTMLElement, el: HTMLElement): void {\n const element = this.tuiRipple ? target.closest(this.tuiRipple) : el;\n\n if (!tuiIsHTMLElement(element)) {\n return;\n }\n\n const ripple = this.createRipple(x, y, element.getBoundingClientRect());\n const touchEnd$ = merge(\n tuiTypedFromEvent(element, 'pointerup'),\n tuiTypedFromEvent(element, 'pointercancel'),\n tuiTypedFromEvent(element, 'pointermove'),\n );\n\n element.appendChild(ripple);\n\n const animationEndOn$ = tuiTypedFromEvent(\n ripple.animate(TO_KEYFRAMES, this.animationOptions),\n 'finish',\n );\n\n race(\n touchEnd$.pipe(switchMap(() => animationEndOn$)),\n animationEndOn$.pipe(switchMap(() => touchEnd$)),\n )\n .pipe(\n first(),\n switchMap(() =>\n tuiTypedFromEvent(\n ripple.animate(FROM_KEYFRAMES, this.animationOptions),\n 'finish',\n ),\n ),\n first(),\n tap(() => element.removeChild(ripple)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private createRipple(\n clientX: number,\n clientY: number,\n {width, height, top, left}: DOMRect,\n ): HTMLElement {\n const ripple: HTMLElement = this.doc.createElement('div');\n const radius = Math.sqrt(width * width + height * height);\n const dimension = radius * 2;\n const x = clientX - left - radius;\n const y = clientY - top - radius;\n\n Object.assign(ripple.style, {\n position: 'absolute',\n top: tuiPx(y),\n left: tuiPx(x),\n width: tuiPx(dimension),\n height: tuiPx(dimension),\n zIndex: 100,\n opacity: 0.12,\n borderRadius: '100%',\n background: 'var(--tui-ripple-background, currentColor)',\n animationFillMode: 'forwards',\n pointerEvents: 'none',\n });\n\n return ripple;\n }\n}\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-directives-ripple.mjs","sources":["../../../projects/addon-mobile/directives/ripple/ripple.directive.ts","../../../projects/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {first, fromEvent, merge, race, switchMap, tap} from 'rxjs';\n\nconst TO = [{transform: 'scale(0)', opacity: '0.12'}, {opacity: '0.12'}];\nconst FROM = [{opacity: '0.12'}, {opacity: '0'}];\n\n@Component({\n template: '',\n styleUrl: './ripple.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-ripple'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiRipple]',\n host: {\n '(pointerdown.zoneless)':\n 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',\n },\n})\nexport class TuiRipple {\n private readonly doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n @Input()\n public tuiRipple = '';\n\n protected start(x: number, y: number, target: HTMLElement, el: HTMLElement): void {\n const element = this.tuiRipple ? target.closest(this.tuiRipple) : el;\n\n if (!tuiIsHTMLElement(element)) {\n return;\n }\n\n const ripple = this.createRipple(x, y, element.getBoundingClientRect());\n const touchEnd$ = merge(\n fromEvent(element, 'pointerup'),\n fromEvent(element, 'pointercancel'),\n fromEvent(element, 'pointermove'),\n );\n\n element.appendChild(ripple);\n\n const animationEnd$ = fromEvent(ripple.animate(TO, this.duration), 'finish');\n\n race(\n touchEnd$.pipe(switchMap(() => animationEnd$)),\n animationEnd$.pipe(switchMap(() => touchEnd$)),\n )\n .pipe(\n first(),\n switchMap(() => fromEvent(ripple.animate(FROM, this.duration), 'finish')),\n first(),\n tap(() => element.removeChild(ripple)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private createRipple(\n clientX: number,\n clientY: number,\n {width, height, top, left}: DOMRect,\n ): HTMLElement {\n const ripple: HTMLElement = this.doc.createElement('div');\n const radius = Math.sqrt(width * width + height * height);\n const dimension = radius * 2;\n const x = clientX - left - radius;\n const y = clientY - top - radius;\n\n Object.assign(ripple.style, {\n position: 'absolute',\n top: tuiPx(y),\n left: tuiPx(x),\n width: tuiPx(dimension),\n height: tuiPx(dimension),\n zIndex: 100,\n opacity: 0.12,\n borderRadius: '100%',\n background: 'var(--tui-ripple-background, currentColor)',\n animationFillMode: 'forwards',\n pointerEvents: 'none',\n });\n\n return ripple;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Directive, Input } from '@angular/core';
2
+ import { inject, Input, Directive } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
5
5
  import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
@@ -56,16 +56,16 @@ class TuiTouchable {
56
56
  }
57
57
  this.el.style.setProperty(this.style, STYLE[this.style]);
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTouchable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTouchable, isStandalone: true, selector: "[tuiTouchable]", inputs: { tuiTouchable: "tuiTouchable" }, ngImport: i0 }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTouchable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiTouchable, isStandalone: true, selector: "[tuiTouchable]", inputs: { tuiTouchable: "tuiTouchable" }, ngImport: i0 }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTouchable, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTouchable, decorators: [{
63
63
  type: Directive,
64
64
  args: [{
65
65
  standalone: true,
66
66
  selector: '[tuiTouchable]',
67
67
  }]
68
- }], ctorParameters: function () { return []; }, propDecorators: { tuiTouchable: [{
68
+ }], ctorParameters: () => [], propDecorators: { tuiTouchable: [{
69
69
  type: Input
70
70
  }] } });
71
71
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-touchable.mjs","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, race, switchMap, take, tap} from 'rxjs';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\nexport function tuiFindTouchIndex(touches: TouchList, id: number): number {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === id) {\n return i;\n }\n }\n\n return -1;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTouchable]',\n})\nexport class TuiTouchable {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly el = tuiInjectElement();\n\n @Input()\n public tuiTouchable: '' | 'background' | 'opacity' | 'transform' = '';\n\n constructor() {\n if (!this.isIOS) {\n return;\n }\n\n tuiTypedFromEvent(this.el, 'touchstart', {passive: true})\n .pipe(\n tap(() => this.onTouchStart()),\n map(({touches}) => touches[touches.length - 1]?.identifier),\n switchMap((identifier) =>\n race(\n tuiTypedFromEvent(this.el, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(this.el, touches, identifier ?? 0),\n ),\n ),\n tuiTypedFromEvent(this.el, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.removeProperty('transform');\n this.el.style.removeProperty('opacity');\n this.el.style.removeProperty('background');\n });\n }\n\n protected get style(): 'background' | 'opacity' | 'transform' {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX = 0, clientY = 0} = touches[id] ?? {};\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(): void {\n if (this.style !== 'transform') {\n this.el.style.removeProperty('transition');\n } else {\n this.el.style.setProperty('transition', 'transform 0.2s');\n }\n\n this.el.style.setProperty(this.style, STYLE[this.style]);\n }\n}\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-directives-touchable.mjs","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, race, switchMap, take, tap} from 'rxjs';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\nexport function tuiFindTouchIndex(touches: TouchList, id: number): number {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === id) {\n return i;\n }\n }\n\n return -1;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTouchable]',\n})\nexport class TuiTouchable {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly el = tuiInjectElement();\n\n @Input()\n public tuiTouchable: '' | 'background' | 'opacity' | 'transform' = '';\n\n constructor() {\n if (!this.isIOS) {\n return;\n }\n\n tuiTypedFromEvent(this.el, 'touchstart', {passive: true})\n .pipe(\n tap(() => this.onTouchStart()),\n map(({touches}) => touches[touches.length - 1]?.identifier),\n switchMap((identifier) =>\n race(\n tuiTypedFromEvent(this.el, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(this.el, touches, identifier ?? 0),\n ),\n ),\n tuiTypedFromEvent(this.el, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.removeProperty('transform');\n this.el.style.removeProperty('opacity');\n this.el.style.removeProperty('background');\n });\n }\n\n protected get style(): 'background' | 'opacity' | 'transform' {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX = 0, clientY = 0} = touches[id] ?? {};\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(): void {\n if (this.style !== 'transform') {\n this.el.style.removeProperty('transition');\n } else {\n this.el.style.setProperty('transition', 'transform 0.2s');\n }\n\n this.el.style.setProperty(this.style, STYLE[this.style]);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  export * from '@taiga-ui/addon-mobile/directives/dropdown-mobile';
2
+ export * from '@taiga-ui/addon-mobile/directives/dropdown-sheet';
2
3
  export * from '@taiga-ui/addon-mobile/directives/elastic-sticky';
3
4
  export * from '@taiga-ui/addon-mobile/directives/responsive-dialog';
4
5
  export * from '@taiga-ui/addon-mobile/directives/ripple';
5
- export * from '@taiga-ui/addon-mobile/directives/sidebar';
6
6
  export * from '@taiga-ui/addon-mobile/directives/touchable';
7
7
 
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, Injectable } from '@angular/core';
4
- import { tuiGetNativeFocused } from '@taiga-ui/cdk/utils/focus';
4
+ import { tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
5
5
  import { merge, fromEvent, filter } from 'rxjs';
6
6
 
7
7
  class TuiKeyboardService {
@@ -25,7 +25,7 @@ class TuiKeyboardService {
25
25
  }
26
26
  }
27
27
  hide() {
28
- const focused = tuiGetNativeFocused(this.doc);
28
+ const focused = tuiGetFocused(this.doc);
29
29
  if (focused?.inputMode === undefined || this.element) {
30
30
  return;
31
31
  }
@@ -41,10 +41,10 @@ class TuiKeyboardService {
41
41
  this.element.inputMode = this.inputMode;
42
42
  this.element = undefined;
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiKeyboardService, providedIn: 'root' }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, providedIn: 'root' }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiKeyboardService, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiKeyboardService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-services.mjs","sources":["../../../projects/addon-mobile/services/keyboard.service.ts","../../../projects/addon-mobile/services/taiga-ui-addon-mobile-services.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable, type OnDestroy} from '@angular/core';\nimport {tuiGetNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {filter, fromEvent, merge} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiKeyboardService implements OnDestroy {\n private readonly doc = inject(DOCUMENT);\n private readonly sub = merge(\n fromEvent(this.doc, 'focusout'),\n fromEvent(this.doc, 'mousedown').pipe(\n filter((e) => Object.is(e.target, this.element)),\n ),\n ).subscribe(() => {\n this.show();\n });\n\n private element?: ElementContentEditable;\n private inputMode = '';\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.show();\n }\n\n public toggle(): void {\n if (this.element) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public hide(): void {\n const focused = tuiGetNativeFocused(this.doc) as HTMLInputElement;\n\n if (focused?.inputMode === undefined || this.element) {\n return;\n }\n\n this.element = focused;\n this.inputMode = focused.inputMode;\n focused.inputMode = 'none';\n }\n\n public show(): void {\n if (!this.element) {\n return;\n }\n\n this.element.inputMode = 'none';\n this.element.inputMode = this.inputMode;\n this.element = undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKA,MAGa,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAG,CAAA,GAAA,GAAG,KAAK,CACxB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CACnD,CACJ,CAAC,SAAS,CAAC,MAAK;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;QAGK,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAoC1B,KAAA;IAlCU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAEM,MAAM,GAAA;QACT,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;KACJ;IAEM,IAAI,GAAA;QACP,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAqB,CAAC;QAElE,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAClD,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACnC,QAAA,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;KAC9B;IAEM,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;KAC5B;+GA/CQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-services.mjs","sources":["../../../projects/addon-mobile/services/keyboard.service.ts","../../../projects/addon-mobile/services/taiga-ui-addon-mobile-services.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable, type OnDestroy} from '@angular/core';\nimport {tuiGetFocused} from '@taiga-ui/cdk/utils/focus';\nimport {filter, fromEvent, merge} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiKeyboardService implements OnDestroy {\n private readonly doc = inject(DOCUMENT);\n private readonly sub = merge(\n fromEvent(this.doc, 'focusout'),\n fromEvent(this.doc, 'mousedown').pipe(\n filter((e) => Object.is(e.target, this.element)),\n ),\n ).subscribe(() => {\n this.show();\n });\n\n private element?: ElementContentEditable;\n private inputMode = '';\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.show();\n }\n\n public toggle(): void {\n if (this.element) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public hide(): void {\n const focused = tuiGetFocused(this.doc) as HTMLInputElement;\n\n if (focused?.inputMode === undefined || this.element) {\n return;\n }\n\n this.element = focused;\n this.inputMode = focused.inputMode;\n focused.inputMode = 'none';\n }\n\n public show(): void {\n if (!this.element) {\n return;\n }\n\n this.element.inputMode = 'none';\n this.element.inputMode = this.inputMode;\n this.element = undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtB,IAAG,CAAA,GAAA,GAAG,KAAK,CACxB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CACnD,CACJ,CAAC,SAAS,CAAC,MAAK;YACb,IAAI,CAAC,IAAI,EAAE;AACf,SAAC,CAAC;QAGM,IAAS,CAAA,SAAA,GAAG,EAAE;AAoCzB;IAlCU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE;;IAGR,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,IAAI,EAAE;;aACR;YACH,IAAI,CAAC,IAAI,EAAE;;;IAIZ,IAAI,GAAA;QACP,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAqB;QAE3D,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAClD;;AAGJ,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,QAAA,OAAO,CAAC,SAAS,GAAG,MAAM;;IAGvB,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf;;AAGJ,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;;+GA9CnB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACPD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "4.52.0-canary.536e4ff",
3
+ "version": "4.52.0-canary.55ce829",
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",
@@ -17,124 +17,86 @@
17
17
  },
18
18
  ".": {
19
19
  "types": "./index.d.ts",
20
- "esm2022": "./esm2022/taiga-ui-addon-mobile.mjs",
21
- "esm": "./esm2022/taiga-ui-addon-mobile.mjs",
22
20
  "default": "./fesm2022/taiga-ui-addon-mobile.mjs"
23
21
  },
24
22
  "./components": {
25
23
  "types": "./components/index.d.ts",
26
- "esm2022": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
27
- "esm": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
28
24
  "default": "./fesm2022/taiga-ui-addon-mobile-components.mjs"
29
25
  },
30
26
  "./directives": {
31
27
  "types": "./directives/index.d.ts",
32
- "esm2022": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
33
- "esm": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
34
28
  "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
35
29
  },
36
30
  "./services": {
37
31
  "types": "./services/index.d.ts",
38
- "esm2022": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
39
- "esm": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
40
32
  "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
41
33
  },
42
34
  "./components/bottom-sheet": {
43
35
  "types": "./components/bottom-sheet/index.d.ts",
44
- "esm2022": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
45
- "esm": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
46
36
  "default": "./fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs"
47
37
  },
48
38
  "./components/mobile-calendar": {
49
39
  "types": "./components/mobile-calendar/index.d.ts",
50
- "esm2022": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
51
- "esm": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
52
40
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs"
53
41
  },
54
42
  "./components/mobile-calendar-dropdown": {
55
43
  "types": "./components/mobile-calendar-dropdown/index.d.ts",
56
- "esm2022": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
57
- "esm": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
58
44
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs"
59
45
  },
60
46
  "./components/mobile-calendar-sheet": {
61
47
  "types": "./components/mobile-calendar-sheet/index.d.ts",
62
- "esm2022": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
63
- "esm": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
64
48
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs"
65
49
  },
66
50
  "./components/mobile-dialog": {
67
51
  "types": "./components/mobile-dialog/index.d.ts",
68
- "esm2022": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
69
- "esm": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
70
52
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs"
71
53
  },
72
54
  "./components/pull-to-refresh": {
73
55
  "types": "./components/pull-to-refresh/index.d.ts",
74
- "esm2022": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
75
- "esm": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
76
56
  "default": "./fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs"
77
57
  },
78
58
  "./components/sheet-dialog": {
79
59
  "types": "./components/sheet-dialog/index.d.ts",
80
- "esm2022": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
81
- "esm": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
82
60
  "default": "./fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs"
83
61
  },
84
62
  "./components/swipe-action": {
85
63
  "types": "./components/swipe-action/index.d.ts",
86
- "esm2022": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
87
- "esm": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
88
64
  "default": "./fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs"
89
65
  },
90
66
  "./components/tab-bar": {
91
67
  "types": "./components/tab-bar/index.d.ts",
92
- "esm2022": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
93
- "esm": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
94
68
  "default": "./fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs"
95
69
  },
96
70
  "./directives/dropdown-mobile": {
97
71
  "types": "./directives/dropdown-mobile/index.d.ts",
98
- "esm2022": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
99
- "esm": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
100
72
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs"
101
73
  },
74
+ "./directives/dropdown-sheet": {
75
+ "types": "./directives/dropdown-sheet/index.d.ts",
76
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs"
77
+ },
102
78
  "./directives/elastic-sticky": {
103
79
  "types": "./directives/elastic-sticky/index.d.ts",
104
- "esm2022": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
105
- "esm": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
106
80
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs"
107
81
  },
108
82
  "./directives/responsive-dialog": {
109
83
  "types": "./directives/responsive-dialog/index.d.ts",
110
- "esm2022": "./esm2022/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.mjs",
111
- "esm": "./esm2022/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.mjs",
112
84
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs"
113
85
  },
114
86
  "./directives/ripple": {
115
87
  "types": "./directives/ripple/index.d.ts",
116
- "esm2022": "./esm2022/directives/ripple/taiga-ui-addon-mobile-directives-ripple.mjs",
117
- "esm": "./esm2022/directives/ripple/taiga-ui-addon-mobile-directives-ripple.mjs",
118
88
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs"
119
89
  },
120
- "./directives/sidebar": {
121
- "types": "./directives/sidebar/index.d.ts",
122
- "esm2022": "./esm2022/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.mjs",
123
- "esm": "./esm2022/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.mjs",
124
- "default": "./fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs"
125
- },
126
90
  "./directives/touchable": {
127
91
  "types": "./directives/touchable/index.d.ts",
128
- "esm2022": "./esm2022/directives/touchable/taiga-ui-addon-mobile-directives-touchable.mjs",
129
- "esm": "./esm2022/directives/touchable/taiga-ui-addon-mobile-directives-touchable.mjs",
130
92
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs"
131
93
  }
132
94
  },
133
95
  "peerDependencies": {
134
- "@angular/cdk": ">=16.0.0",
135
- "@angular/common": ">=16.0.0",
136
- "@angular/core": ">=16.0.0",
137
- "@ng-web-apis/common": "^4.12.0",
96
+ "@angular/cdk": ">=19.0.0",
97
+ "@angular/common": ">=19.0.0",
98
+ "@angular/core": ">=19.0.0",
99
+ "@ng-web-apis/common": "^4.12.2",
138
100
  "@taiga-ui/cdk": "^4.52.0",
139
101
  "@taiga-ui/core": "^4.52.0",
140
102
  "@taiga-ui/kit": "^4.52.0",
@@ -30,9 +30,8 @@ input[tuiCheckbox] {
30
30
  }
31
31
 
32
32
  &::before {
33
- inline-size: 1rem;
34
- block-size: 1rem;
35
- mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 13L1 8.19231L2.4 6.84615L6 10.3077L13.6 3L15 4.34615L6 13Z" fill="black"/></svg>');
33
+ mask: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 13L1 8.19231L2.4 6.84615L6 10.3077L13.6 3L15 4.34615L6 13Z" fill="black"/></svg>')
34
+ no-repeat center / 1rem;
36
35
  transition:
37
36
  clip-path var(--tui-duration) ease-in-out,
38
37
  mask 0s var(--tui-duration) ease-in-out;
@@ -25,8 +25,6 @@ input[tuiSwitch] {
25
25
  }
26
26
 
27
27
  &::after {
28
- .transition(transform);
29
-
30
28
  content: '';
31
29
  position: absolute;
32
30
  top: 0;
@@ -1,6 +1,6 @@
1
1
  tui-badge,
2
2
  [tuiBadge] {
3
- font-weight: bold;
3
+ font-weight: 600;
4
4
 
5
5
  &[data-size='s'] {
6
6
  font: var(--tui-font-text-xs);
@@ -12,6 +12,6 @@ tui-badge,
12
12
  --t-size: 1.75rem;
13
13
 
14
14
  font: var(--tui-font-text-s);
15
- font-weight: bold;
15
+ font-weight: 600;
16
16
  }
17
17
  }
@@ -15,6 +15,10 @@
15
15
  --t-radius: 1rem;
16
16
  }
17
17
 
18
+ &[data-size='s'] {
19
+ --t-size: 1.875rem;
20
+ }
21
+
18
22
  &[data-size='m'] {
19
23
  --t-radius: 0.75rem;
20
24
  }
@@ -2,13 +2,8 @@ tui-chip,
2
2
  [tuiChip] {
3
3
  border-radius: 2rem;
4
4
 
5
- &[data-size='s'] {
6
- --t-size: 1.875rem;
7
- --t-padding: 0.6875rem;
8
- }
9
-
10
- &[data-size='m'] {
11
- --t-size: 2rem;
12
- --t-padding: 0.875rem;
5
+ > img,
6
+ [tuiAvatar] {
7
+ border-radius: 100%;
13
8
  }
14
9
  }
@@ -0,0 +1,21 @@
1
+ [tuiToast] {
2
+ min-block-size: 3rem;
3
+ border-radius: 1.5rem;
4
+ font: var(--tui-font-text-m);
5
+
6
+ [tuiButton]:last-child {
7
+ margin: -0.1875rem -0.4375rem -0.1875rem 0;
8
+ }
9
+
10
+ &:has([tuiAvatar]) {
11
+ gap: 1rem;
12
+
13
+ [tuiAvatar] {
14
+ margin: 0 -0.25rem;
15
+ }
16
+
17
+ [tuiButton]:last-child {
18
+ margin-inline-end: 0;
19
+ }
20
+ }
21
+ }
@@ -23,7 +23,7 @@ input[tuiRadio] {
23
23
  &::before {
24
24
  display: block;
25
25
  transform: none;
26
- mask: var(--t-icon) center/100%;
26
+ mask: var(--t-icon) no-repeat center / 1rem;
27
27
  }
28
28
 
29
29
  &:invalid {
@@ -32,11 +32,9 @@ input[tuiRadio] {
32
32
  }
33
33
 
34
34
  &::before {
35
- --t-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" preserveAspectRatio="xMidYMid meet" height="100%" width="100%"><path d="M12.3368 4.33683C12.7859 3.88772 13.5141 3.88772 13.9632 4.33683C14.4123 4.78593 14.4123 5.51407 13.9632 5.96317L6.96317 12.9632C6.51407 13.4123 5.78593 13.4123 5.33683 12.9632L2.33683 9.96317C1.88772 9.51407 1.88772 8.78593 2.33683 8.33683C2.78593 7.88772 3.51407 7.88772 3.96317 8.33683L6.15 10.5237L12.3368 4.33683Z" fill="black"/></svg>');
35
+ --t-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" height="100%" width="100%"><path d="M12.3368 4.33683C12.7859 3.88772 13.5141 3.88772 13.9632 4.33683C14.4123 4.78593 14.4123 5.51407 13.9632 5.96317L6.96317 12.9632C6.51407 13.4123 5.78593 13.4123 5.33683 12.9632L2.33683 9.96317C1.88772 9.51407 1.88772 8.78593 2.33683 8.33683C2.78593 7.88772 3.51407 7.88772 3.96317 8.33683L6.15 10.5237L12.3368 4.33683Z" fill="black"/></svg>');
36
36
 
37
37
  display: none;
38
- inline-size: 1rem;
39
- block-size: 1rem;
40
38
  }
41
39
 
42
40
  &:not([tuiRadio]):indeterminate::before {
@@ -13,9 +13,8 @@ input[tuiSwitch] {
13
13
  }
14
14
 
15
15
  &::after {
16
- .transition(~'transform, width');
17
-
18
16
  right: auto;
17
+ transition-property: transform, inline-size;
19
18
  inline-size: 1.9375rem;
20
19
  block-size: 1.9375rem;
21
20
  border-radius: 2rem;
@@ -1,3 +1,4 @@
1
+ @import '@taiga-ui/core/styles/taiga-ui-local.less';
1
2
  @import 'common/search.less';
2
3
 
3
4
  [data-platform='android'] {
@@ -22,6 +23,12 @@
22
23
  tui-segmented > .tui-segmented_active:active {
23
24
  opacity: var(--tui-disabled-opacity);
24
25
  }
26
+
27
+ [tuiToast]:active {
28
+ .interactive({
29
+ transform: scale(0.95);
30
+ });
31
+ }
25
32
  }
26
33
 
27
34
  [data-platform='android'],
@@ -38,4 +45,5 @@
38
45
  @import 'common/header.less';
39
46
  @import 'common/message.less';
40
47
  @import 'common/notification-middle.less';
48
+ @import 'common/toast.less';
41
49
  }
@@ -1,3 +0,0 @@
1
- export * from './sidebar';
2
- export * from './sidebar.component';
3
- export * from './sidebar.directive';
@@ -1,21 +0,0 @@
1
- import { type AnimationOptions } from '@angular/animations';
2
- import { type DoCheck } from '@angular/core';
3
- import { type TuiHorizontalDirection } from '@taiga-ui/core/types';
4
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @deprecated use {@link TuiDrawer} instead
8
- */
9
- export declare class TuiSidebarComponent implements DoCheck {
10
- private readonly directive;
11
- private readonly options;
12
- private readonly left;
13
- private readonly right;
14
- ngDoCheck(): void;
15
- protected get animation(): AnimationOptions;
16
- protected get direction(): TuiHorizontalDirection;
17
- protected get content(): PolymorpheusContent;
18
- protected get autoWidth(): boolean;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiSidebarComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiSidebarComponent, "aside[tuiSidebar]", never, {}, {}, never, never, true, never>;
21
- }
@@ -1,6 +0,0 @@
1
- import { TuiSidebarComponent } from './sidebar.component';
2
- import { TuiSidebarDirective } from './sidebar.directive';
3
- /**
4
- * @deprecated use {@link TuiDrawer} instead
5
- */
6
- export declare const TuiSidebar: readonly [typeof TuiSidebarComponent, typeof TuiSidebarDirective];