@taiga-ui/addon-mobile 4.4.1 → 4.5.0-canary.49229f4

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 (54) hide show
  1. package/components/mobile-calendar/mobile-calendar.component.d.ts +2 -2
  2. package/directives/dropdown-mobile/dropdown-mobile.component.d.ts +1 -1
  3. package/directives/ripple/ripple.directive.d.ts +3 -4
  4. package/esm2022/components/mobile-calendar/mobile-calendar.component.mjs +15 -15
  5. package/esm2022/components/mobile-calendar/mobile-calendar.strategy.mjs +4 -4
  6. package/esm2022/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.mjs +5 -5
  7. package/esm2022/components/mobile-calendar-sheet/mobile-calendar-sheet.component.mjs +5 -4
  8. package/esm2022/components/mobile-dialog/mobile-dialog.component.mjs +6 -6
  9. package/esm2022/components/pull-to-refresh/loader-android/loader-android.component.mjs +5 -5
  10. package/esm2022/components/pull-to-refresh/loader-ios/loader-ios.component.mjs +5 -5
  11. package/esm2022/components/pull-to-refresh/pull-to-refresh.component.mjs +3 -3
  12. package/esm2022/components/pull-to-refresh/pull-to-refresh.service.mjs +3 -3
  13. package/esm2022/components/sheet-dialog/sheet-dialog.component.mjs +9 -8
  14. package/esm2022/components/swipe-action/swipe-actions.component.mjs +3 -3
  15. package/esm2022/components/tab-bar/tab-bar-item.component.mjs +3 -3
  16. package/esm2022/components/tab-bar/tab-bar.component.mjs +3 -3
  17. package/esm2022/directives/dropdown-mobile/dropdown-mobile.component.mjs +6 -6
  18. package/esm2022/directives/ripple/ripple.directive.mjs +8 -16
  19. package/esm2022/directives/sidebar/sidebar.component.mjs +4 -4
  20. package/esm2022/directives/touchable/touchable.directive.mjs +4 -5
  21. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +4 -4
  22. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +4 -3
  24. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +18 -18
  26. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs +6 -6
  28. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +11 -11
  30. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +9 -8
  32. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs +2 -2
  34. package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +4 -4
  36. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +5 -5
  38. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs +7 -15
  40. package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs +3 -3
  42. package/fesm2022/taiga-ui-addon-mobile-directives-sidebar.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs +3 -4
  44. package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs.map +1 -1
  45. package/package.json +134 -134
  46. package/styles/android/app-bar.less +3 -3
  47. package/styles/android/radio.less +2 -0
  48. package/styles/android/switch.less +11 -9
  49. package/styles/common/block-status.less +2 -4
  50. package/styles/common/button.less +1 -1
  51. package/styles/common/segmented.less +13 -0
  52. package/styles/ios/search.less +49 -0
  53. package/styles/ios/switch.less +9 -7
  54. package/styles/taiga-ui-mobile.less +10 -2
@@ -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 DEFAULT_SELECTOR = ':scope';\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\nfunction selectorScopeFallback(value: string): string {\n return value === '' ? DEFAULT_SELECTOR : value;\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.silent)': 'start($event.clientX, $event.clientY, $event.target)',\n },\n})\nexport class TuiRipple {\n private readonly document = 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 alias: 'tuiRipple',\n transform: selectorScopeFallback,\n })\n public selector = DEFAULT_SELECTOR;\n\n protected start(x: number, y: number, target: HTMLElement): void {\n const element = target.closest(this.selector);\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.document.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 {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.silent)':\n 'start($event.clientX, $event.clientY, $event.target, $event.currentTarget)',\n },\n})\nexport class TuiRipple {\n private readonly document = 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: string | '' = '';\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.document.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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"}
@@ -85,14 +85,14 @@ class TuiSidebarComponent {
85
85
  return this.directive.autoWidth;
86
86
  }
87
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSidebarComponent, isStandalone: true, selector: "aside[tuiSidebar]", host: { properties: { "class": "\"t-\" + direction", "@tuiSlideIn": "animation" } }, ngImport: i0, template: "<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;width:100%;height:100%;display:flex}:host:before,:host:after{position:absolute;top:0;left:0;width:100%;content:\"\";height:100%;background:#00000061;animation:tuiFadeIn var(--tui-duration)}:host:before{left:-100%;width:200%}:host:after{left:100%}:host.ng-animating:before,:host.ng-animating:after{opacity:0;transition:opacity var(--tui-duration)}:host.t-right{justify-content:flex-end}:host.t-left{justify-content:flex-start}.t-wrapper{position:relative;display:flex;flex-direction:column;background:var(--tui-background-base);box-shadow:0 10rem var(--tui-background-base);width:17.25rem}.t-wrapper_auto-width{width:auto}\n"], dependencies: [{ kind: "directive", type: TuiActiveZone, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [tuiSlideIn], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSidebarComponent, isStandalone: true, selector: "aside[tuiSidebar]", host: { properties: { "class": "\"t-\" + direction", "@tuiSlideIn": "animation" } }, ngImport: i0, template: "<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;display:flex}:host:before,:host:after{position:absolute;top:0;left:0;inline-size:100%;content:\"\";block-size:100%;background:#00000061;animation:tuiFadeIn var(--tui-duration)}:host:before{left:-100%;inline-size:200%}:host:after{left:100%}:host.ng-animating:before,:host.ng-animating:after{opacity:0;transition:opacity var(--tui-duration)}:host.t-right{justify-content:flex-end}:host.t-left{justify-content:flex-start}.t-wrapper{position:relative;display:flex;flex-direction:column;background:var(--tui-background-base);box-shadow:0 10rem var(--tui-background-base);inline-size:17.25rem}.t-wrapper_auto-width{inline-size:auto}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiActiveZone, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }], animations: [tuiSlideIn], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSidebarComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ standalone: true, selector: 'aside[tuiSidebar]', imports: [TuiActiveZone, PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiSlideIn], host: {
92
+ args: [{ standalone: true, selector: 'aside[tuiSidebar]', imports: [PolymorpheusOutlet, TuiActiveZone], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiSlideIn], host: {
93
93
  '[class]': '"t-" + direction',
94
94
  '[@tuiSlideIn]': 'animation',
95
- }, template: "<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;width:100%;height:100%;display:flex}:host:before,:host:after{position:absolute;top:0;left:0;width:100%;content:\"\";height:100%;background:#00000061;animation:tuiFadeIn var(--tui-duration)}:host:before{left:-100%;width:200%}:host:after{left:100%}:host.ng-animating:before,:host.ng-animating:after{opacity:0;transition:opacity var(--tui-duration)}:host.t-right{justify-content:flex-end}:host.t-left{justify-content:flex-start}.t-wrapper{position:relative;display:flex;flex-direction:column;background:var(--tui-background-base);box-shadow:0 10rem var(--tui-background-base);width:17.25rem}.t-wrapper_auto-width{width:auto}\n"] }]
95
+ }, template: "<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;display:flex}:host:before,:host:after{position:absolute;top:0;left:0;inline-size:100%;content:\"\";block-size:100%;background:#00000061;animation:tuiFadeIn var(--tui-duration)}:host:before{left:-100%;inline-size:200%}:host:after{left:100%}:host.ng-animating:before,:host.ng-animating:after{opacity:0;transition:opacity var(--tui-duration)}:host.t-right{justify-content:flex-end}:host.t-left{justify-content:flex-start}.t-wrapper{position:relative;display:flex;flex-direction:column;background:var(--tui-background-base);box-shadow:0 10rem var(--tui-background-base);inline-size:17.25rem}.t-wrapper_auto-width{inline-size:auto}\n"] }]
96
96
  }] });
97
97
 
98
98
  const TuiSidebar = [TuiSidebarComponent, TuiSidebarDirective];
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-sidebar.mjs","sources":["../../../projects/addon-mobile/directives/sidebar/sidebar.directive.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.component.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.template.html","../../../projects/addon-mobile/directives/sidebar/sidebar.ts","../../../projects/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import type {ComponentRef, OnDestroy} from '@angular/core';\nimport {Directive, inject, INJECTOR, Input, TemplateRef} from '@angular/core';\nimport {TuiDropdownService} from '@taiga-ui/core/directives/dropdown';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = Record<string, unknown>>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\n{\n private readonly injector = inject(INJECTOR);\n private readonly portalService = inject(TuiDropdownService);\n\n private readonly component = new PolymorpheusComponent(\n TuiSidebarComponent,\n this.injector,\n );\n\n private sidebarRef: ComponentRef<TuiSidebarComponent> | null = null;\n\n @Input('tuiSidebarDirection')\n public direction: TuiHorizontalDirection = 'left';\n\n @Input('tuiSidebarAutoWidth')\n public autoWidth = false;\n\n public readonly content = inject(TemplateRef<T>);\n\n @Input()\n public set tuiSidebar(open: boolean) {\n if (open) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide();\n }\n\n private show(): void {\n if (this.sidebarRef !== null) {\n return;\n }\n\n this.sidebarRef = this.portalService.add(this.component);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide(): void {\n if (this.sidebarRef === null) {\n return;\n }\n\n this.portalService.remove(this.sidebarRef);\n this.sidebarRef = null;\n }\n}\n","import type {AnimationOptions} from '@angular/animations';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiSlideIn} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@Component({\n standalone: true,\n selector: 'aside[tuiSidebar]',\n imports: [TuiActiveZone, PolymorpheusOutlet],\n templateUrl: './sidebar.template.html',\n styleUrls: ['./sidebar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideIn],\n host: {\n '[class]': '\"t-\" + direction',\n '[@tuiSlideIn]': 'animation',\n },\n})\nexport class TuiSidebarComponent implements DoCheck {\n private readonly directive = inject(TuiSidebarDirective);\n private readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n private readonly left = {...this.options, value: 'left'};\n private readonly right = {...this.options, value: 'right'};\n\n public ngDoCheck(): void {\n this.directive.check();\n }\n\n protected get animation(): AnimationOptions {\n return this.direction === 'left' ? this.left : this.right;\n }\n\n protected get direction(): TuiHorizontalDirection {\n return this.directive.direction;\n }\n\n protected get content(): PolymorpheusContent {\n return this.directive.content;\n }\n\n protected get autoWidth(): boolean {\n return this.directive.autoWidth;\n }\n}\n","<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","import {TuiSidebarComponent} from './sidebar.component';\nimport {TuiSidebarDirective} from './sidebar.directive';\n\nexport const TuiSidebar = [TuiSidebarComponent, TuiSidebarDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-directives-sidebar.mjs","sources":["../../../projects/addon-mobile/directives/sidebar/sidebar.directive.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.component.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.template.html","../../../projects/addon-mobile/directives/sidebar/sidebar.ts","../../../projects/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import type {ComponentRef, OnDestroy} from '@angular/core';\nimport {Directive, inject, INJECTOR, Input, TemplateRef} from '@angular/core';\nimport {TuiDropdownService} from '@taiga-ui/core/directives/dropdown';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = Record<string, unknown>>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\n{\n private readonly injector = inject(INJECTOR);\n private readonly portalService = inject(TuiDropdownService);\n\n private readonly component = new PolymorpheusComponent(\n TuiSidebarComponent,\n this.injector,\n );\n\n private sidebarRef: ComponentRef<TuiSidebarComponent> | null = null;\n\n @Input('tuiSidebarDirection')\n public direction: TuiHorizontalDirection = 'left';\n\n @Input('tuiSidebarAutoWidth')\n public autoWidth = false;\n\n public readonly content = inject(TemplateRef<T>);\n\n @Input()\n public set tuiSidebar(open: boolean) {\n if (open) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide();\n }\n\n private show(): void {\n if (this.sidebarRef !== null) {\n return;\n }\n\n this.sidebarRef = this.portalService.add(this.component);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide(): void {\n if (this.sidebarRef === null) {\n return;\n }\n\n this.portalService.remove(this.sidebarRef);\n this.sidebarRef = null;\n }\n}\n","import type {AnimationOptions} from '@angular/animations';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiSlideIn} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@Component({\n standalone: true,\n selector: 'aside[tuiSidebar]',\n imports: [PolymorpheusOutlet, TuiActiveZone],\n templateUrl: './sidebar.template.html',\n styleUrls: ['./sidebar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideIn],\n host: {\n '[class]': '\"t-\" + direction',\n '[@tuiSlideIn]': 'animation',\n },\n})\nexport class TuiSidebarComponent implements DoCheck {\n private readonly directive = inject(TuiSidebarDirective);\n private readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n private readonly left = {...this.options, value: 'left'};\n private readonly right = {...this.options, value: 'right'};\n\n public ngDoCheck(): void {\n this.directive.check();\n }\n\n protected get animation(): AnimationOptions {\n return this.direction === 'left' ? this.left : this.right;\n }\n\n protected get direction(): TuiHorizontalDirection {\n return this.directive.direction;\n }\n\n protected get content(): PolymorpheusContent {\n return this.directive.content;\n }\n\n protected get autoWidth(): boolean {\n return this.directive.autoWidth;\n }\n}\n","<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","import {TuiSidebarComponent} from './sidebar.component';\nimport {TuiSidebarDirective} from './sidebar.directive';\n\nexport const TuiSidebar = [TuiSidebarComponent, TuiSidebarDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,8 +13,7 @@ const STYLE = {
13
13
  };
14
14
  function tuiFindTouchIndex(touches, id) {
15
15
  for (let i = 0; i < touches.length; i++) {
16
- const { identifier } = touches[i];
17
- if (identifier === id) {
16
+ if (touches[i]?.identifier === id) {
18
17
  return i;
19
18
  }
20
19
  }
@@ -29,7 +28,7 @@ class TuiTouchable {
29
28
  return;
30
29
  }
31
30
  tuiTypedFromEvent(this.el, 'touchstart', { passive: true })
32
- .pipe(tap(() => this.onTouchStart()), map(({ touches }) => touches[touches.length - 1].identifier), switchMap((identifier) => race(tuiTypedFromEvent(this.el, 'touchmove', { passive: true }).pipe(filter(({ touches }) => this.hasTouchLeft(this.el, touches, identifier))), tuiTypedFromEvent(this.el, 'touchend')).pipe(take(1))), takeUntilDestroyed())
31
+ .pipe(tap(() => this.onTouchStart()), map(({ touches }) => touches[touches.length - 1]?.identifier), switchMap((identifier) => race(tuiTypedFromEvent(this.el, 'touchmove', { passive: true }).pipe(filter(({ touches }) => this.hasTouchLeft(this.el, touches, identifier ?? 0))), tuiTypedFromEvent(this.el, 'touchend')).pipe(take(1))), takeUntilDestroyed())
33
32
  .subscribe(() => {
34
33
  this.el.style.removeProperty('transform');
35
34
  this.el.style.removeProperty('opacity');
@@ -45,7 +44,7 @@ class TuiTouchable {
45
44
  if (!ownerDocument || id === -1) {
46
45
  return true;
47
46
  }
48
- const { clientX, clientY } = touches[id];
47
+ const { clientX = 0, clientY = 0 } = touches[id] ?? {};
49
48
  return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));
50
49
  }
51
50
  onTouchStart() {
@@ -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 const {identifier} = touches[i];\n\n if (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),\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, clientY} = 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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"}
package/package.json CHANGED
@@ -1,137 +1,137 @@
1
1
  {
2
- "name": "@taiga-ui/addon-mobile",
3
- "version": "4.4.1",
4
- "description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
5
- "keywords": [
6
- "angular",
7
- "component",
8
- "mobile"
9
- ],
10
- "homepage": "https://github.com/taiga-family/taiga-ui",
11
- "repository": "https://github.com/taiga-family/taiga-ui",
12
- "license": "Apache-2.0",
13
- "peerDependencies": {
14
- "@angular/cdk": ">=16.0.0",
15
- "@angular/common": ">=16.0.0",
16
- "@angular/core": ">=16.0.0",
17
- "@ng-web-apis/common": "^4.2.1",
18
- "@taiga-ui/cdk": "^4.4.1",
19
- "@taiga-ui/core": "^4.4.1",
20
- "@taiga-ui/kit": "^4.4.1",
21
- "@taiga-ui/polymorpheus": "^4.6.4",
22
- "rxjs": ">=7.0.0"
23
- },
24
- "module": "fesm2022/taiga-ui-addon-mobile.mjs",
25
- "typings": "index.d.ts",
26
- "exports": {
27
- "./package.json": {
28
- "default": "./package.json"
29
- },
30
- ".": {
31
- "types": "./index.d.ts",
32
- "esm2022": "./esm2022/taiga-ui-addon-mobile.mjs",
33
- "esm": "./esm2022/taiga-ui-addon-mobile.mjs",
34
- "default": "./fesm2022/taiga-ui-addon-mobile.mjs"
35
- },
36
- "./components": {
37
- "types": "./components/index.d.ts",
38
- "esm2022": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
39
- "esm": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
40
- "default": "./fesm2022/taiga-ui-addon-mobile-components.mjs"
41
- },
42
- "./directives": {
43
- "types": "./directives/index.d.ts",
44
- "esm2022": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
45
- "esm": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
46
- "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
47
- },
48
- "./services": {
49
- "types": "./services/index.d.ts",
50
- "esm2022": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
51
- "esm": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
52
- "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
53
- },
54
- "./components/mobile-calendar": {
55
- "types": "./components/mobile-calendar/index.d.ts",
56
- "esm2022": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
57
- "esm": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
58
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs"
59
- },
60
- "./components/mobile-calendar-dropdown": {
61
- "types": "./components/mobile-calendar-dropdown/index.d.ts",
62
- "esm2022": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
63
- "esm": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
64
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs"
65
- },
66
- "./components/mobile-calendar-sheet": {
67
- "types": "./components/mobile-calendar-sheet/index.d.ts",
68
- "esm2022": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
69
- "esm": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
70
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs"
71
- },
72
- "./components/mobile-dialog": {
73
- "types": "./components/mobile-dialog/index.d.ts",
74
- "esm2022": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
75
- "esm": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
76
- "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs"
77
- },
78
- "./components/pull-to-refresh": {
79
- "types": "./components/pull-to-refresh/index.d.ts",
80
- "esm2022": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
81
- "esm": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
82
- "default": "./fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs"
83
- },
84
- "./components/sheet-dialog": {
85
- "types": "./components/sheet-dialog/index.d.ts",
86
- "esm2022": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
87
- "esm": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
88
- "default": "./fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs"
89
- },
90
- "./components/swipe-action": {
91
- "types": "./components/swipe-action/index.d.ts",
92
- "esm2022": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
93
- "esm": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
94
- "default": "./fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs"
95
- },
96
- "./components/tab-bar": {
97
- "types": "./components/tab-bar/index.d.ts",
98
- "esm2022": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
99
- "esm": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
100
- "default": "./fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs"
101
- },
102
- "./directives/dropdown-mobile": {
103
- "types": "./directives/dropdown-mobile/index.d.ts",
104
- "esm2022": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
105
- "esm": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
106
- "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs"
107
- },
108
- "./directives/elastic-sticky": {
109
- "types": "./directives/elastic-sticky/index.d.ts",
110
- "esm2022": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
111
- "esm": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
112
- "default": "./fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs"
113
- },
114
- "./directives/ripple": {
115
- "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
- "default": "./fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs"
119
- },
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
- "./directives/touchable": {
127
- "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
- "default": "./fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs"
2
+ "name": "@taiga-ui/addon-mobile",
3
+ "version": "4.5.0-canary.49229f4",
4
+ "description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
5
+ "keywords": [
6
+ "angular",
7
+ "component",
8
+ "mobile"
9
+ ],
10
+ "homepage": "https://github.com/taiga-family/taiga-ui",
11
+ "repository": "https://github.com/taiga-family/taiga-ui",
12
+ "license": "Apache-2.0",
13
+ "peerDependencies": {
14
+ "@angular/cdk": ">=16.0.0",
15
+ "@angular/common": ">=16.0.0",
16
+ "@angular/core": ">=16.0.0",
17
+ "@ng-web-apis/common": "^4.2.1",
18
+ "@taiga-ui/cdk": "^4.5.0-canary.49229f4",
19
+ "@taiga-ui/core": "^4.5.0-canary.49229f4",
20
+ "@taiga-ui/kit": "^4.5.0-canary.49229f4",
21
+ "@taiga-ui/polymorpheus": "^4.7.0",
22
+ "rxjs": ">=7.0.0"
23
+ },
24
+ "module": "fesm2022/taiga-ui-addon-mobile.mjs",
25
+ "typings": "index.d.ts",
26
+ "exports": {
27
+ "./package.json": {
28
+ "default": "./package.json"
29
+ },
30
+ ".": {
31
+ "types": "./index.d.ts",
32
+ "esm2022": "./esm2022/taiga-ui-addon-mobile.mjs",
33
+ "esm": "./esm2022/taiga-ui-addon-mobile.mjs",
34
+ "default": "./fesm2022/taiga-ui-addon-mobile.mjs"
35
+ },
36
+ "./components": {
37
+ "types": "./components/index.d.ts",
38
+ "esm2022": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
39
+ "esm": "./esm2022/components/taiga-ui-addon-mobile-components.mjs",
40
+ "default": "./fesm2022/taiga-ui-addon-mobile-components.mjs"
41
+ },
42
+ "./directives": {
43
+ "types": "./directives/index.d.ts",
44
+ "esm2022": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
45
+ "esm": "./esm2022/directives/taiga-ui-addon-mobile-directives.mjs",
46
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives.mjs"
47
+ },
48
+ "./services": {
49
+ "types": "./services/index.d.ts",
50
+ "esm2022": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
51
+ "esm": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
52
+ "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
53
+ },
54
+ "./components/mobile-calendar": {
55
+ "types": "./components/mobile-calendar/index.d.ts",
56
+ "esm2022": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
57
+ "esm": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
58
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs"
59
+ },
60
+ "./components/mobile-calendar-dropdown": {
61
+ "types": "./components/mobile-calendar-dropdown/index.d.ts",
62
+ "esm2022": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
63
+ "esm": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
64
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs"
65
+ },
66
+ "./components/mobile-calendar-sheet": {
67
+ "types": "./components/mobile-calendar-sheet/index.d.ts",
68
+ "esm2022": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
69
+ "esm": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
70
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs"
71
+ },
72
+ "./components/mobile-dialog": {
73
+ "types": "./components/mobile-dialog/index.d.ts",
74
+ "esm2022": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
75
+ "esm": "./esm2022/components/mobile-dialog/taiga-ui-addon-mobile-components-mobile-dialog.mjs",
76
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs"
77
+ },
78
+ "./components/pull-to-refresh": {
79
+ "types": "./components/pull-to-refresh/index.d.ts",
80
+ "esm2022": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
81
+ "esm": "./esm2022/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.mjs",
82
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs"
83
+ },
84
+ "./components/sheet-dialog": {
85
+ "types": "./components/sheet-dialog/index.d.ts",
86
+ "esm2022": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
87
+ "esm": "./esm2022/components/sheet-dialog/taiga-ui-addon-mobile-components-sheet-dialog.mjs",
88
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs"
89
+ },
90
+ "./components/swipe-action": {
91
+ "types": "./components/swipe-action/index.d.ts",
92
+ "esm2022": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
93
+ "esm": "./esm2022/components/swipe-action/taiga-ui-addon-mobile-components-swipe-action.mjs",
94
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs"
95
+ },
96
+ "./components/tab-bar": {
97
+ "types": "./components/tab-bar/index.d.ts",
98
+ "esm2022": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
99
+ "esm": "./esm2022/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.mjs",
100
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs"
101
+ },
102
+ "./directives/dropdown-mobile": {
103
+ "types": "./directives/dropdown-mobile/index.d.ts",
104
+ "esm2022": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
105
+ "esm": "./esm2022/directives/dropdown-mobile/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs",
106
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs"
107
+ },
108
+ "./directives/elastic-sticky": {
109
+ "types": "./directives/elastic-sticky/index.d.ts",
110
+ "esm2022": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
111
+ "esm": "./esm2022/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.mjs",
112
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs"
113
+ },
114
+ "./directives/ripple": {
115
+ "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
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs"
119
+ },
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
+ "./directives/touchable": {
127
+ "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
+ "default": "./fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs"
131
+ }
132
+ },
133
+ "sideEffects": false,
134
+ "dependencies": {
135
+ "tslib": "^2.7.0"
131
136
  }
132
- },
133
- "sideEffects": false,
134
- "dependencies": {
135
- "tslib": "^2.7.0"
136
- }
137
137
  }
@@ -1,15 +1,15 @@
1
1
  tui-app-bar {
2
- text-align: left;
2
+ text-align: start;
3
3
  font: var(--tui-font-heading-6);
4
4
 
5
5
  > .t-content {
6
6
  position: static;
7
7
  padding: 0 0 0 1.375rem;
8
8
  transform: none;
9
- max-width: calc(100% - var(--t-sides, 0px) / 2);
9
+ max-inline-size: calc(100% - var(--t-sides, 0px) / 2);
10
10
 
11
11
  > * {
12
- max-width: calc(100% - var(--t-sides, 0px));
12
+ max-inline-size: calc(100% - var(--t-sides, 0px));
13
13
  }
14
14
  }
15
15
 
@@ -1,3 +1,5 @@
1
+ @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
+
1
3
  input[tuiRadio] {
2
4
  --t-size: 1.125rem;
3
5
 
@@ -1,8 +1,10 @@
1
+ @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
+
1
3
  input[tuiSwitch] {
2
4
  .transition(~'color, opacity');
3
5
 
4
- height: 1.25rem;
5
- width: 2.5rem;
6
+ block-size: 1.25rem;
7
+ inline-size: 2.5rem;
6
8
  color: var(--tui-border-hover) !important;
7
9
  background: transparent !important;
8
10
  overflow: visible;
@@ -10,8 +12,8 @@ input[tuiSwitch] {
10
12
  &::before {
11
13
  content: '';
12
14
  display: block;
13
- height: 100%;
14
- width: 100%;
15
+ block-size: 100%;
16
+ inline-size: 100%;
15
17
  border: 0.1875rem solid transparent;
16
18
  box-sizing: border-box;
17
19
  border-radius: 2rem;
@@ -29,16 +31,16 @@ input[tuiSwitch] {
29
31
  position: absolute;
30
32
  top: 0;
31
33
  left: 0;
32
- width: 1.25rem;
33
- height: 1.25rem;
34
+ inline-size: 1.25rem;
35
+ block-size: 1.25rem;
34
36
  border-radius: 100%;
35
37
  background: #f6f6f6;
36
38
  transform: none;
37
39
  outline: none;
38
40
  box-shadow:
39
- 0 0.0625rem 0.0625rem rgba(0, 0, 0, 0.24),
40
- 0 0 0.0625rem rgba(0, 0, 0, 0.12),
41
- inset 0 0.0625rem rgba(255, 255, 255, 0.12) !important;
41
+ 0 0.0625rem 0.0625rem rgb(0 0 0 / 24%),
42
+ 0 0 0.0625rem rgb(0 0 0 / 12%),
43
+ inset 0 0.0625rem rgb(255 255 255 / 12%) !important;
42
44
  }
43
45
 
44
46
  &:checked {
@@ -1,5 +1,3 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local';
2
-
3
1
  tui-block-status {
4
2
  padding: 2rem;
5
3
 
@@ -31,8 +29,8 @@ tui-block-status {
31
29
  }
32
30
 
33
31
  img {
34
- width: 8rem;
35
- height: 8rem;
32
+ inline-size: 8rem;
33
+ block-size: 8rem;
36
34
  }
37
35
 
38
36
  a:not(:last-child),
@@ -1,5 +1,5 @@
1
1
  [tuiCardLarge] [tuiButton] {
2
- width: 100%;
2
+ inline-size: 100%;
3
3
  }
4
4
 
5
5
  [tuiButton],
@@ -0,0 +1,13 @@
1
+ tui-segmented[data-size] {
2
+ --t-padding: 0.625rem;
3
+ --t-gap: 0.625rem;
4
+ --t-margin: -0.25rem;
5
+ --t-height: var(--tui-height-s);
6
+
7
+ font: var(--tui-font-text-s);
8
+ border-radius: 0.625rem;
9
+
10
+ tui-icon {
11
+ font-size: 1rem;
12
+ }
13
+ }