@taiga-ui/addon-mobile 4.65.0 → 5.0.0-canary.8b64ec1

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 (167) hide show
  1. package/README.md +2 -2
  2. package/components/bottom-sheet/bottom-sheet.component.d.ts +3 -3
  3. package/components/index.d.ts +0 -1
  4. package/components/mobile-calendar/calendar-date-stream.d.ts +6 -0
  5. package/components/mobile-calendar/index.d.ts +1 -0
  6. package/components/mobile-calendar/mobile-calendar.component.d.ts +20 -22
  7. package/components/mobile-calendar/mobile-calendar.strategy.d.ts +3 -7
  8. package/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.d.ts +10 -12
  9. package/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.d.ts +6 -6
  10. package/components/pull-to-refresh/pull-to-refresh.component.d.ts +8 -7
  11. package/components/sheet-dialog/sheet-dialog.component.d.ts +2 -2
  12. package/components/sheet-dialog/sheet-dialog.directive.d.ts +4 -3
  13. package/components/sheet-dialog/sheet-dialog.options.d.ts +4 -10
  14. package/components/sheet-dialog/sheet-dialog.service.d.ts +9 -4
  15. package/components/swipe-action/swipe-actions-auto-close.directive.d.ts +2 -2
  16. package/components/tab-bar/tab-bar-item.component.d.ts +3 -3
  17. package/components/tab-bar/tab-bar.component.d.ts +4 -7
  18. package/directives/dropdown-mobile/dropdown-mobile.component.d.ts +10 -14
  19. package/directives/dropdown-mobile/dropdown-mobile.directive.d.ts +1 -2
  20. package/directives/dropdown-sheet/dropdown-sheet.component.d.ts +14 -0
  21. package/directives/dropdown-sheet/dropdown-sheet.directive.d.ts +6 -0
  22. package/directives/dropdown-sheet/index.d.ts +2 -0
  23. package/directives/elastic-sticky/elastic-sticky.directive.d.ts +1 -2
  24. package/directives/index.d.ts +1 -1
  25. package/directives/responsive-dialog/responsive-dialog.directive.d.ts +5 -4
  26. package/directives/responsive-dialog/responsive-dialog.service.d.ts +4 -7
  27. package/directives/ripple/ripple.directive.d.ts +3 -3
  28. package/directives/touchable/touchable.directive.d.ts +5 -5
  29. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs +14 -23
  30. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +35 -57
  32. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +10 -14
  34. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +130 -165
  36. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +49 -60
  38. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +62 -61
  40. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs +12 -20
  42. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +32 -53
  44. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-addon-mobile-components.mjs +0 -1
  46. package/fesm2022/taiga-ui-addon-mobile-components.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +67 -90
  48. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs +83 -0
  50. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs.map +1 -0
  51. package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +12 -16
  52. package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs +46 -29
  54. package/fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs +21 -44
  56. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs +20 -27
  58. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-addon-mobile-directives.mjs +1 -1
  60. package/fesm2022/taiga-ui-addon-mobile-services.mjs +36 -7
  61. package/fesm2022/taiga-ui-addon-mobile-services.mjs.map +1 -1
  62. package/package.json +27 -65
  63. package/services/index.d.ts +1 -0
  64. package/services/theme-color.service.d.ts +18 -0
  65. package/styles/android/app-bar.less +1 -1
  66. package/styles/android/checkbox.less +2 -3
  67. package/styles/common/badge-notification.less +1 -1
  68. package/styles/common/badge.less +2 -3
  69. package/styles/common/block-status.less +1 -1
  70. package/styles/common/button.less +1 -1
  71. package/styles/common/card-large.less +1 -1
  72. package/styles/common/chip.less +3 -9
  73. package/styles/common/header.less +1 -1
  74. package/styles/common/message.less +1 -1
  75. package/styles/common/segmented.less +1 -1
  76. package/styles/common/title.less +0 -1
  77. package/styles/common/toast.less +3 -4
  78. package/styles/ios/checkbox.less +2 -4
  79. package/styles/ios/switch.less +51 -2
  80. package/components/mobile-dialog/index.d.ts +0 -3
  81. package/components/mobile-dialog/mobile-dialog.component.d.ts +0 -10
  82. package/components/mobile-dialog/mobile-dialog.options.d.ts +0 -12
  83. package/components/mobile-dialog/mobile-dialog.service.d.ts +0 -10
  84. package/directives/sidebar/index.d.ts +0 -3
  85. package/directives/sidebar/sidebar.component.d.ts +0 -21
  86. package/directives/sidebar/sidebar.d.ts +0 -6
  87. package/directives/sidebar/sidebar.directive.d.ts +0 -22
  88. package/esm2022/components/bottom-sheet/bottom-sheet.component.mjs +0 -50
  89. package/esm2022/components/bottom-sheet/index.mjs +0 -2
  90. package/esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs +0 -5
  91. package/esm2022/components/index.mjs +0 -10
  92. package/esm2022/components/mobile-calendar/index.mjs +0 -5
  93. package/esm2022/components/mobile-calendar/mobile-calendar.component.mjs +0 -308
  94. package/esm2022/components/mobile-calendar/mobile-calendar.const.mjs +0 -35
  95. package/esm2022/components/mobile-calendar/mobile-calendar.providers.mjs +0 -27
  96. package/esm2022/components/mobile-calendar/mobile-calendar.strategy.mjs +0 -126
  97. package/esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs +0 -5
  98. package/esm2022/components/mobile-calendar-dropdown/index.mjs +0 -3
  99. package/esm2022/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.mjs +0 -113
  100. package/esm2022/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.mjs +0 -53
  101. package/esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +0 -5
  102. package/esm2022/components/mobile-calendar-sheet/index.mjs +0 -2
  103. package/esm2022/components/mobile-calendar-sheet/mobile-calendar-sheet.component.mjs +0 -25
  104. package/esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +0 -5
  105. package/esm2022/components/mobile-dialog/index.mjs +0 -4
  106. package/esm2022/components/mobile-dialog/mobile-dialog.component.mjs +0 -26
  107. package/esm2022/components/mobile-dialog/mobile-dialog.options.mjs +0 -17
  108. package/esm2022/components/mobile-dialog/mobile-dialog.service.mjs +0 -22
  109. package/esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs +0 -5
  110. package/esm2022/components/pull-to-refresh/index.mjs +0 -6
  111. package/esm2022/components/pull-to-refresh/loader-android/loader-android.component.mjs +0 -46
  112. package/esm2022/components/pull-to-refresh/loader-ios/loader-ios.component.mjs +0 -39
  113. package/esm2022/components/pull-to-refresh/pull-to-refresh.component.mjs +0 -51
  114. package/esm2022/components/pull-to-refresh/pull-to-refresh.providers.mjs +0 -24
  115. package/esm2022/components/pull-to-refresh/pull-to-refresh.service.mjs +0 -37
  116. package/esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +0 -5
  117. package/esm2022/components/sheet-dialog/index.mjs +0 -5
  118. package/esm2022/components/sheet-dialog/sheet-dialog.component.mjs +0 -81
  119. package/esm2022/components/sheet-dialog/sheet-dialog.directive.mjs +0 -21
  120. package/esm2022/components/sheet-dialog/sheet-dialog.options.mjs +0 -24
  121. package/esm2022/components/sheet-dialog/sheet-dialog.service.mjs +0 -38
  122. package/esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs +0 -5
  123. package/esm2022/components/swipe-action/index.mjs +0 -3
  124. package/esm2022/components/swipe-action/swipe-actions-auto-close.directive.mjs +0 -34
  125. package/esm2022/components/swipe-action/swipe-actions.component.mjs +0 -23
  126. package/esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs +0 -5
  127. package/esm2022/components/tab-bar/index.mjs +0 -5
  128. package/esm2022/components/tab-bar/tab-bar-item.component.mjs +0 -26
  129. package/esm2022/components/tab-bar/tab-bar-item.directive.mjs +0 -27
  130. package/esm2022/components/tab-bar/tab-bar.component.mjs +0 -46
  131. package/esm2022/components/tab-bar/tab-bar.mjs +0 -9
  132. package/esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs +0 -5
  133. package/esm2022/components/taiga-ui-addon-mobile-components.mjs +0 -5
  134. package/esm2022/directives/dropdown-mobile/dropdown-mobile.component.mjs +0 -98
  135. package/esm2022/directives/dropdown-mobile/dropdown-mobile.directive.mjs +0 -54
  136. package/esm2022/directives/dropdown-mobile/index.mjs +0 -3
  137. package/esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +0 -5
  138. package/esm2022/directives/elastic-sticky/elastic-sticky.directive.mjs +0 -23
  139. package/esm2022/directives/elastic-sticky/elastic-sticky.service.mjs +0 -53
  140. package/esm2022/directives/elastic-sticky/index.mjs +0 -3
  141. package/esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +0 -5
  142. package/esm2022/directives/index.mjs +0 -7
  143. package/esm2022/directives/responsive-dialog/index.mjs +0 -3
  144. package/esm2022/directives/responsive-dialog/responsive-dialog.directive.mjs +0 -21
  145. package/esm2022/directives/responsive-dialog/responsive-dialog.service.mjs +0 -34
  146. package/esm2022/directives/responsive-dialog/taiga-ui-addon-mobile-directives-responsive-dialog.mjs +0 -5
  147. package/esm2022/directives/ripple/index.mjs +0 -2
  148. package/esm2022/directives/ripple/ripple.directive.mjs +0 -98
  149. package/esm2022/directives/ripple/taiga-ui-addon-mobile-directives-ripple.mjs +0 -5
  150. package/esm2022/directives/sidebar/index.mjs +0 -4
  151. package/esm2022/directives/sidebar/sidebar.component.mjs +0 -45
  152. package/esm2022/directives/sidebar/sidebar.directive.mjs +0 -64
  153. package/esm2022/directives/sidebar/sidebar.mjs +0 -7
  154. package/esm2022/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.mjs +0 -5
  155. package/esm2022/directives/taiga-ui-addon-mobile-directives.mjs +0 -5
  156. package/esm2022/directives/touchable/index.mjs +0 -2
  157. package/esm2022/directives/touchable/taiga-ui-addon-mobile-directives-touchable.mjs +0 -5
  158. package/esm2022/directives/touchable/touchable.directive.mjs +0 -71
  159. package/esm2022/index.mjs +0 -4
  160. package/esm2022/services/index.mjs +0 -2
  161. package/esm2022/services/keyboard.service.mjs +0 -53
  162. package/esm2022/services/taiga-ui-addon-mobile-services.mjs +0 -5
  163. package/esm2022/taiga-ui-addon-mobile.mjs +0 -5
  164. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs +0 -65
  165. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs.map +0 -1
  166. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs +0 -114
  167. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs.map +0 -1
@@ -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 {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\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\nfunction findIndex(touches: TouchList, id = 0): 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 selector: '[tuiTouchable]',\n})\nexport class TuiTouchable {\n private readonly isIOS = inject(WA_IS_IOS);\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n\n protected readonly style = computed<'background' | 'opacity' | 'transform'>(\n () => this.tuiTouchable() || 'transform',\n );\n\n public readonly tuiTouchable = input<'' | '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((id) =>\n race(\n tuiTypedFromEvent(this.el, 'touchend'),\n tuiTypedFromEvent(this.el, 'touchmove', {passive: true}).pipe(\n filter(({touches}) => this.hasTouches(this.el, touches, id)),\n ),\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 private hasTouches(el: HTMLElement, touches: TouchList, id?: number): boolean {\n const index = findIndex(touches, id);\n const {clientX = 0, clientY = 0} = touches[index] ?? {};\n\n return index === -1 || !el.contains(this.doc.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,8 +1,9 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, Injectable } from '@angular/core';
4
- import { tuiGetNativeFocused } from '@taiga-ui/cdk/utils/focus';
3
+ import { inject, Injectable, InjectionToken } from '@angular/core';
4
+ import { tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
5
5
  import { merge, fromEvent, filter } from 'rxjs';
6
+ import { Meta } from '@angular/platform-browser';
6
7
 
7
8
  class TuiKeyboardService {
8
9
  constructor() {
@@ -25,7 +26,7 @@ class TuiKeyboardService {
25
26
  }
26
27
  }
27
28
  hide() {
28
- const focused = tuiGetNativeFocused(this.doc);
29
+ const focused = tuiGetFocused(this.doc);
29
30
  if (focused?.inputMode === undefined || this.element) {
30
31
  return;
31
32
  }
@@ -41,19 +42,47 @@ class TuiKeyboardService {
41
42
  this.element.inputMode = this.inputMode;
42
43
  this.element = undefined;
43
44
  }
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' }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiKeyboardService, providedIn: 'root' }); }
46
47
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiKeyboardService, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiKeyboardService, decorators: [{
48
49
  type: Injectable,
49
50
  args: [{
50
51
  providedIn: 'root',
51
52
  }]
52
53
  }] });
53
54
 
55
+ const TUI_THEME_COLOR = new InjectionToken(ngDevMode ? 'TUI_THEME_COLOR' : '', {
56
+ factory: () => inject(Meta).getTag('name="theme-color"')?.content ?? '',
57
+ });
58
+ class TuiThemeColorService {
59
+ constructor() {
60
+ this.current = inject(TUI_THEME_COLOR);
61
+ this.doc = inject(DOCUMENT);
62
+ this.meta = inject(Meta);
63
+ this.color = this.current;
64
+ }
65
+ get color() {
66
+ return this.current;
67
+ }
68
+ set color(content) {
69
+ this.current = content;
70
+ this.meta.updateTag({ name: 'theme-color', content });
71
+ this.doc.documentElement.style.setProperty('--tui-theme-color', content);
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiThemeColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiThemeColorService, providedIn: 'root' }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiThemeColorService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root',
80
+ }]
81
+ }], ctorParameters: () => [] });
82
+
54
83
  /**
55
84
  * Generated bundle index. Do not edit.
56
85
  */
57
86
 
58
- export { TuiKeyboardService };
87
+ export { TUI_THEME_COLOR, TuiKeyboardService, TuiThemeColorService };
59
88
  //# sourceMappingURL=taiga-ui-addon-mobile-services.mjs.map
@@ -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/theme-color.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","import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable, InjectionToken} from '@angular/core';\nimport {Meta} from '@angular/platform-browser';\n\nexport const TUI_THEME_COLOR = new InjectionToken<string>(\n ngDevMode ? 'TUI_THEME_COLOR' : '',\n {\n factory: () => inject(Meta).getTag('name=\"theme-color\"')?.content ?? '',\n },\n);\n\ninterface TuiThemeColor {\n get color(): string;\n set color(value: string);\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiThemeColorService implements TuiThemeColor {\n private current = inject(TUI_THEME_COLOR);\n private readonly doc = inject(DOCUMENT);\n private readonly meta = inject(Meta);\n\n constructor() {\n this.color = this.current;\n }\n\n public get color(): string {\n return this.current;\n }\n\n public set color(content: string) {\n this.current = content;\n this.meta.updateTag({name: 'theme-color', content});\n this.doc.documentElement.style.setProperty('--tui-theme-color', content);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "4.65.0",
3
+ "version": "5.0.0-canary.8b64ec1",
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",
@@ -8,7 +8,10 @@
8
8
  "mobile"
9
9
  ],
10
10
  "homepage": "https://github.com/taiga-family/taiga-ui",
11
- "repository": "https://github.com/taiga-family/taiga-ui",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/taiga-family/taiga-ui"
14
+ },
12
15
  "license": "Apache-2.0",
13
16
  "exports": {
14
17
  "./styles/*": "./styles/*",
@@ -17,129 +20,88 @@
17
20
  },
18
21
  ".": {
19
22
  "types": "./index.d.ts",
20
- "esm2022": "./esm2022/taiga-ui-addon-mobile.mjs",
21
- "esm": "./esm2022/taiga-ui-addon-mobile.mjs",
22
23
  "default": "./fesm2022/taiga-ui-addon-mobile.mjs"
23
24
  },
24
25
  "./components": {
25
26
  "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
27
  "default": "./fesm2022/taiga-ui-addon-mobile-components.mjs"
29
28
  },
30
- "./directives": {
31
- "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
- "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
35
- },
36
29
  "./services": {
37
30
  "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
31
  "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
41
32
  },
33
+ "./directives": {
34
+ "types": "./directives/index.d.ts",
35
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
36
+ },
42
37
  "./components/bottom-sheet": {
43
38
  "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
39
  "default": "./fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs"
47
40
  },
48
- "./components/mobile-calendar": {
49
- "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
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs"
53
- },
54
41
  "./components/mobile-calendar-dropdown": {
55
42
  "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
43
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs"
59
44
  },
60
45
  "./components/mobile-calendar-sheet": {
61
46
  "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
47
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs"
65
48
  },
66
- "./components/mobile-dialog": {
67
- "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
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs"
71
- },
72
49
  "./components/pull-to-refresh": {
73
50
  "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
51
  "default": "./fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs"
77
52
  },
78
53
  "./components/sheet-dialog": {
79
54
  "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
55
  "default": "./fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs"
83
56
  },
84
57
  "./components/swipe-action": {
85
58
  "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
59
  "default": "./fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs"
89
60
  },
90
61
  "./components/tab-bar": {
91
62
  "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
63
  "default": "./fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs"
95
64
  },
65
+ "./components/mobile-calendar": {
66
+ "types": "./components/mobile-calendar/index.d.ts",
67
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs"
68
+ },
96
69
  "./directives/dropdown-mobile": {
97
70
  "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
71
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs"
101
72
  },
73
+ "./directives/dropdown-sheet": {
74
+ "types": "./directives/dropdown-sheet/index.d.ts",
75
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-sheet.mjs"
76
+ },
102
77
  "./directives/elastic-sticky": {
103
78
  "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
79
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs"
107
80
  },
108
81
  "./directives/responsive-dialog": {
109
82
  "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
83
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-responsive-dialog.mjs"
113
84
  },
114
85
  "./directives/ripple": {
115
86
  "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
87
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs"
119
88
  },
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
89
  "./directives/touchable": {
127
90
  "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
91
  "default": "./fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs"
131
92
  }
132
93
  },
133
94
  "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",
138
- "@taiga-ui/cdk": "^4.65.0",
139
- "@taiga-ui/core": "^4.65.0",
140
- "@taiga-ui/kit": "^4.65.0",
141
- "@taiga-ui/layout": "^4.65.0",
142
- "@taiga-ui/polymorpheus": "^4.9.0",
95
+ "@angular/cdk": ">=19.0.0",
96
+ "@angular/common": ">=19.0.0",
97
+ "@angular/core": ">=19.0.0",
98
+ "@ng-web-apis/common": "^5.0.1",
99
+ "@ng-web-apis/platform": "^5.0.1",
100
+ "@taiga-ui/cdk": "^5.0.0-rc.0",
101
+ "@taiga-ui/core": "^5.0.0-rc.0",
102
+ "@taiga-ui/kit": "^5.0.0-rc.0",
103
+ "@taiga-ui/layout": "^5.0.0-rc.0",
104
+ "@taiga-ui/polymorpheus": "^5.0.0",
143
105
  "rxjs": ">=7.0.0"
144
106
  },
145
107
  "module": "fesm2022/taiga-ui-addon-mobile.mjs",
@@ -1 +1,2 @@
1
1
  export * from './keyboard.service';
2
+ export * from './theme-color.service';
@@ -0,0 +1,18 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare const TUI_THEME_COLOR: InjectionToken<string>;
4
+ interface TuiThemeColor {
5
+ get color(): string;
6
+ set color(value: string);
7
+ }
8
+ export declare class TuiThemeColorService implements TuiThemeColor {
9
+ private current;
10
+ private readonly doc;
11
+ private readonly meta;
12
+ constructor();
13
+ get color(): string;
14
+ set color(content: string);
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiThemeColorService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<TuiThemeColorService>;
17
+ }
18
+ export {};
@@ -1,5 +1,5 @@
1
1
  tui-app-bar {
2
- font: var(--tui-font-heading-6);
2
+ font: var(--tui-font-heading-h6);
3
3
  block-size: 3.5rem;
4
4
 
5
5
  > .t-content {
@@ -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;
@@ -1,6 +1,6 @@
1
1
  tui-badge-notification {
2
2
  &[data-size='l'] {
3
- font: var(--tui-font-text-m);
3
+ font: var(--tui-font-body-m);
4
4
  }
5
5
 
6
6
  &[data-size='m'] {
@@ -1,9 +1,8 @@
1
- tui-badge,
2
1
  [tuiBadge] {
3
2
  font-weight: 600;
4
3
 
5
4
  &[data-size='s'] {
6
- font: var(--tui-font-text-xs);
5
+ font: var(--tui-font-body-xs);
7
6
  font-weight: bold;
8
7
  }
9
8
 
@@ -11,7 +10,7 @@ tui-badge,
11
10
  --t-padding: 0 0.625rem;
12
11
  --t-size: 1.75rem;
13
12
 
14
- font: var(--tui-font-text-s);
13
+ font: var(--tui-font-body-s);
15
14
  font-weight: 600;
16
15
  }
17
16
  }
@@ -24,7 +24,7 @@ tui-block-status {
24
24
  h4,
25
25
  h5,
26
26
  h6 {
27
- font: var(--tui-font-heading-5);
27
+ font: var(--tui-font-heading-h5);
28
28
 
29
29
  & ~ .t-block-text:not(:empty) {
30
30
  margin-block-start: 0.5rem;
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  &[data-size='l'] {
27
- font: var(--tui-font-text-l);
27
+ font: var(--tui-font-body-l);
28
28
  font-weight: bold;
29
29
  }
30
30
 
@@ -10,7 +10,7 @@
10
10
  --t-comp: -0.125rem;
11
11
  }
12
12
 
13
- [tuiAccessories] > [tuiButtonClose] {
13
+ [tuiAccessories] > [tuiButtonX] {
14
14
  --t-size: 1.5rem;
15
15
  }
16
16
  }
@@ -1,14 +1,8 @@
1
- tui-chip,
2
1
  [tuiChip] {
3
2
  border-radius: 2rem;
4
3
 
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;
4
+ > img,
5
+ [tuiAvatar] {
6
+ border-radius: 100%;
13
7
  }
14
8
  }
@@ -27,7 +27,7 @@
27
27
  &[data-size='body-m'] {
28
28
  [tuiTitle],
29
29
  [tuiAccessories] {
30
- font: var(--tui-font-heading-6);
30
+ font: var(--tui-font-heading-h6);
31
31
  }
32
32
  }
33
33
  }
@@ -1,4 +1,4 @@
1
1
  [tuiMessage] {
2
- font: var(--tui-font-text-l);
2
+ font: var(--tui-font-body-l);
3
3
  border-radius: 0.875rem;
4
4
  }
@@ -4,7 +4,7 @@ tui-segmented[data-size] {
4
4
  --t-margin: -0.25rem;
5
5
  --t-height: var(--tui-height-s);
6
6
 
7
- font: var(--tui-font-text-s);
7
+ font: var(--tui-font-body-s);
8
8
  border-radius: 0.625rem;
9
9
 
10
10
  tui-icon {
@@ -6,7 +6,6 @@
6
6
  }
7
7
  }
8
8
 
9
- tui-notification [tuiTitle] [tuiSubtitle],
10
9
  [tuiNotification] [tuiTitle] [tuiSubtitle] {
11
10
  color: var(--tui-text-primary);
12
11
  }
@@ -1,17 +1,16 @@
1
1
  [tuiToast] {
2
2
  min-block-size: 3rem;
3
3
  border-radius: 1.5rem;
4
- font: var(--tui-font-text-m);
4
+ font: var(--tui-font-body-m);
5
5
 
6
6
  [tuiButton]:last-child {
7
7
  margin: -0.1875rem -0.4375rem -0.1875rem 0;
8
8
  }
9
9
 
10
- // TODO: replace tui-avatar to tuiAvatar in v5
11
- &:has(tui-avatar) {
10
+ &:has([tuiAvatar]) {
12
11
  gap: 1rem;
13
12
 
14
- tui-avatar {
13
+ [tuiAvatar] {
15
14
  margin: 0 -0.25rem;
16
15
  }
17
16
 
@@ -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 {
@@ -1,10 +1,59 @@
1
1
  @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
2
 
3
- input[tuiSwitch] {
3
+ input[tuiSwitch]._native {
4
+ block-size: 1.9375rem;
5
+ inline-size: 3.1875rem;
6
+ appearance: auto;
7
+ accent-color: var(--tui-background-accent-2);
8
+
9
+ &:invalid {
10
+ accent-color: var(--tui-status-negative);
11
+ }
12
+
13
+ &::before,
14
+ &::after {
15
+ display: none;
16
+ }
17
+
18
+ @supports (anchor-name: --ios26) {
19
+ inline-size: 4rem;
20
+ block-size: 1.75rem;
21
+
22
+ &::before {
23
+ .transition(background);
24
+
25
+ position: absolute;
26
+ display: block;
27
+ inset: 0;
28
+ border-radius: 10rem;
29
+ inline-size: 100%;
30
+ background-color: transparent;
31
+ mix-blend-mode: color;
32
+ transform: none;
33
+ }
34
+
35
+ &:invalid:not(:checked)::before {
36
+ background-color: var(--tui-status-negative);
37
+ }
38
+
39
+ [data-theme='dark'] & {
40
+ &:invalid:not(:checked)::before {
41
+ background-color: var(--tui-status-negative-pale);
42
+ }
43
+
44
+ &:disabled:not(:checked)::before {
45
+ background-color: rgba(255, 255, 255, 0.2);
46
+ mix-blend-mode: lighten;
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ input[tuiSwitch]:not(._native) {
4
53
  block-size: 1.9375rem;
5
54
  inline-size: 3.1875rem;
6
55
  border-radius: 2rem;
7
- color: #fff !important;
56
+ color: #fff;
8
57
  background: var(--tui-background-neutral-2);
9
58
  overflow: visible;
10
59
 
@@ -1,3 +0,0 @@
1
- export * from './mobile-dialog.component';
2
- export * from './mobile-dialog.options';
3
- export * from './mobile-dialog.service';
@@ -1,10 +0,0 @@
1
- import { type TuiPopover } from '@taiga-ui/cdk/services';
2
- import { type TuiMobileDialogOptions } from './mobile-dialog.options';
3
- import * as i0 from "@angular/core";
4
- export declare class TuiMobileDialog<I> {
5
- protected readonly isIOS: boolean;
6
- protected readonly context: TuiPopover<TuiMobileDialogOptions<I>, number>;
7
- protected onAction(index: number): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileDialog<any>, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileDialog<any>, "tui-mobile-dialog", never, {}, {}, never, never, true, never>;
10
- }
@@ -1,12 +0,0 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
- export interface TuiMobileDialogOptions<I = undefined> {
3
- readonly actions: readonly string[];
4
- readonly data: I;
5
- readonly label: string;
6
- }
7
- export declare const TUI_MOBILE_DIALOG_DEFAULT_OPTIONS: TuiMobileDialogOptions;
8
- /**
9
- * Default parameters for mobile dialog component
10
- */
11
- export declare const TUI_MOBILE_DIALOG_OPTIONS: InjectionToken<TuiMobileDialogOptions<undefined>>;
12
- export declare function tuiMobileDialogOptionsProvider(options: Partial<TuiMobileDialogOptions<unknown>>): Provider;
@@ -1,10 +0,0 @@
1
- import { type TuiPopoverContext, TuiPopoverService } from '@taiga-ui/cdk/services';
2
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
- import { type Observable } from 'rxjs';
4
- import { type TuiMobileDialogOptions } from './mobile-dialog.options';
5
- import * as i0 from "@angular/core";
6
- export declare class TuiMobileDialogService extends TuiPopoverService<TuiMobileDialogOptions<any>, number> {
7
- open(content: PolymorpheusContent<TuiMobileDialogOptions<any> & TuiPopoverContext<number>>, options?: Partial<TuiMobileDialogOptions<any>>): Observable<number>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileDialogService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<TuiMobileDialogService>;
10
- }