@taiga-ui/core 5.19.0 → 5.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/components/calendar/calendar.component.d.ts +1 -1
  2. package/components/input/input.directive.d.ts +14 -3
  3. package/components/scrollbar/scroll-controls.component.d.ts +3 -2
  4. package/components/scrollbar/scroll-ref.directive.d.ts +1 -0
  5. package/components/scrollbar/scrollbar.component.d.ts +1 -1
  6. package/components/scrollbar/scrollbar.directive.d.ts +2 -3
  7. package/components/scrollbar/scrollbar.service.d.ts +4 -1
  8. package/fesm2022/taiga-ui-core-components-button.mjs +2 -2
  9. package/fesm2022/taiga-ui-core-components-calendar.mjs +2 -2
  10. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-core-components-carousel.mjs +3 -1
  12. package/fesm2022/taiga-ui-core-components-carousel.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-core-components-cell.mjs +3 -3
  14. package/fesm2022/taiga-ui-core-components-checkbox.mjs +2 -2
  15. package/fesm2022/taiga-ui-core-components-data-list.mjs +4 -4
  16. package/fesm2022/taiga-ui-core-components-error.mjs +5 -7
  17. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-core-components-icon.mjs +2 -2
  19. package/fesm2022/taiga-ui-core-components-input.mjs +19 -8
  20. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-core-components-label.mjs +3 -3
  22. package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
  23. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  24. package/fesm2022/taiga-ui-core-components-radio.mjs +2 -2
  25. package/fesm2022/taiga-ui-core-components-root.mjs +3 -3
  26. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +86 -53
  28. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-core-components-textfield.mjs +4 -4
  30. package/fesm2022/taiga-ui-core-components-title.mjs +3 -3
  31. package/fesm2022/taiga-ui-core-directives-appearance.mjs +3 -3
  32. package/fesm2022/taiga-ui-core-directives-group.mjs +3 -3
  33. package/fesm2022/taiga-ui-core-directives-icons.mjs +3 -3
  34. package/fesm2022/taiga-ui-core-portals-alert.mjs +3 -3
  35. package/fesm2022/taiga-ui-core-portals-dialog.mjs +2 -2
  36. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +25 -12
  38. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-core-portals-modal.mjs +3 -3
  40. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-core-tokens.mjs +4 -2
  42. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  43. package/package.json +4 -4
  44. package/portals/dropdown/dropdown-context.directive.d.ts +1 -0
  45. package/portals/dropdown/dropdown-hover.directive.d.ts +1 -0
  46. package/tokens/index.d.ts +1 -0
  47. package/tokens/timeline-support.d.ts +2 -0
@@ -7,11 +7,11 @@ import { TUI_DATA_LIST_HOST } from '@taiga-ui/core/components/data-list';
7
7
 
8
8
  class Styles {
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-label-5.19.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]){display:flex;gap:.25rem;flex-direction:column;font:var(--tui-typography-body-s);color:var(--tui-text-primary)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]):not([data-orientation=vertical]){flex-direction:row;inline-size:fit-content;font:var(--tui-typography-body-m)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=checkbox],[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=radio]{font:inherit;inset-block-start:calc(var(--tui-lh) / 2);transform:translateY(-50%);margin-inline-end:.5rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=checkbox][data-size=s],[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=radio][data-size=s]{line-height:1.3;margin-inline-end:.25rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) small{font:var(--tui-typography-body-s)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]:where(:not([tuiCell] *)){margin-block-start:.125rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-label-5.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]){display:flex;gap:.25rem;flex-direction:column;font:var(--tui-typography-body-s);color:var(--tui-text-primary)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]):not([data-orientation=vertical]){flex-direction:row;inline-size:fit-content;font:var(--tui-typography-body-m)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=checkbox],[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=radio]{font:inherit;inset-block-start:calc(var(--tui-lh) / 2);transform:translateY(-50%);margin-inline-end:.5rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=checkbox][data-size=s],[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=radio][data-size=s]{line-height:1.3;margin-inline-end:.25rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) small{font:var(--tui-typography-body-s)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]:where(:not([tuiCell] *)){margin-block-start:.125rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
13
13
  type: Component,
14
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-label-${TUI_VERSION}`, styles: ["[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]){display:flex;gap:.25rem;flex-direction:column;font:var(--tui-typography-body-s);color:var(--tui-text-primary)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]):not([data-orientation=vertical]){flex-direction:row;inline-size:fit-content;font:var(--tui-typography-body-m)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=checkbox],[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=radio]{font:inherit;inset-block-start:calc(var(--tui-lh) / 2);transform:translateY(-50%);margin-inline-end:.5rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=checkbox][data-size=s],[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) input[type=radio][data-size=s]{line-height:1.3;margin-inline-end:.25rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) small{font:var(--tui-typography-body-s)}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]:where(:not([tuiCell] *)){margin-block-start:.125rem}[tuiLabel]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}\n"] }]
14
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-label-${TUI_VERSION}`, styles: ["[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]){display:flex;gap:.25rem;flex-direction:column;font:var(--tui-typography-body-s);color:var(--tui-text-primary)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]):not([data-orientation=vertical]){flex-direction:row;inline-size:fit-content;font:var(--tui-typography-body-m)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=checkbox],[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=radio]{font:inherit;inset-block-start:calc(var(--tui-lh) / 2);transform:translateY(-50%);margin-inline-end:.5rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=checkbox][data-size=s],[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) input[type=radio][data-size=s]{line-height:1.3;margin-inline-end:.25rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) small{font:var(--tui-typography-body-s)}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]:where(:not([tuiCell] *)){margin-block-start:.125rem}[tuiLabel]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}\n"] }]
15
15
  }] });
16
16
  // TODO: Replace TUI_DATA_LIST_HOST with proper token once we refactor textfields
17
17
  class TuiLabel {
@@ -22,7 +22,7 @@ class TuiLabel {
22
22
  this.parent = inject(forwardRef(() => TUI_DATA_LIST_HOST), { optional: true });
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.25", type: TuiLabel, isStandalone: true, selector: "label[tuiLabel]", host: { attributes: { "data-tui-version": "5.19.0" }, properties: { "attr.data-orientation": "textfield() ? \"vertical\" : \"horizontal\"", "attr.for": "el.htmlFor || parent?.id" } }, queries: [{ propertyName: "textfield", first: true, predicate: i0.forwardRef(() => TUI_DATA_LIST_HOST), descendants: true, isSignal: true }], ngImport: i0 }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.25", type: TuiLabel, isStandalone: true, selector: "label[tuiLabel]", host: { attributes: { "data-tui-version": "5.20.0" }, properties: { "attr.data-orientation": "textfield() ? \"vertical\" : \"horizontal\"", "attr.for": "el.htmlFor || parent?.id" } }, queries: [{ propertyName: "textfield", first: true, predicate: i0.forwardRef(() => TUI_DATA_LIST_HOST), descendants: true, isSignal: true }], ngImport: i0 }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLabel, decorators: [{
28
28
  type: Directive,
@@ -13,11 +13,11 @@ const [TUI_LINK_OPTIONS, tuiLinkOptionsProvider] = tuiCreateOptions({
13
13
  });
14
14
  class Styles {
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-link-5.19.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiLink]:where(*[data-tui-version=\"5.19.0\"]){transition-property:color,text-decoration,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);padding:0;background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;border-radius:.125rem;outline-width:1px;outline-offset:-1px;text-underline-offset:.2em;text-decoration:none dashed currentColor 1px;text-decoration-color:color-mix(in lch,currentColor,transparent)}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):before{margin-inline-end:.25rem}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):after{margin-inline-start:.25rem}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:where(:not([data-icon-start=font])):before,[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:where(:not([data-icon-end=font])):after{content:\"\\2060\";padding:calc(var(--tui-icon-size, 1rem) / 2);vertical-align:super;font-size:0;line-height:0;box-sizing:border-box;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;transition:none}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-icon-start=font]:before,[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-icon-end=font]:after{display:inline;font-size:var(--tui-icon-size, 1rem);vertical-align:sub}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiChevron]:after{display:inline-block;vertical-align:initial}@media(hover:hover)and (pointer:fine){[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){text-decoration-color:currentColor}}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-state=hover]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-state=active]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-appearance=\"\"]{text-decoration-line:underline;text-decoration-style:solid}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-link-5.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiLink]:where(*[data-tui-version=\"5.20.0\"]){transition-property:color,text-decoration,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);padding:0;background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;border-radius:.125rem;outline-width:1px;outline-offset:-1px;text-underline-offset:.2em;text-decoration:none dashed currentColor 1px;text-decoration-color:color-mix(in lch,currentColor,transparent)}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):before{margin-inline-end:.25rem}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):after{margin-inline-start:.25rem}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:where(:not([data-icon-start=font])):before,[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:where(:not([data-icon-end=font])):after{content:\"\\2060\";padding:calc(var(--tui-icon-size, 1rem) / 2);vertical-align:super;font-size:0;line-height:0;box-sizing:border-box;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;transition:none}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-icon-start=font]:before,[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-icon-end=font]:after{display:inline;font-size:var(--tui-icon-size, 1rem);vertical-align:sub}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiChevron]:after{display:inline-block;vertical-align:initial}@media(hover:hover)and (pointer:fine){[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){text-decoration-color:currentColor}}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-state=hover]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-state=active]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-appearance=\"\"]{text-decoration-line:underline;text-decoration-style:solid}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
19
19
  type: Component,
20
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-link-${TUI_VERSION}`, styles: ["[tuiLink]:where(*[data-tui-version=\"5.19.0\"]){transition-property:color,text-decoration,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);padding:0;background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;border-radius:.125rem;outline-width:1px;outline-offset:-1px;text-underline-offset:.2em;text-decoration:none dashed currentColor 1px;text-decoration-color:color-mix(in lch,currentColor,transparent)}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):before{margin-inline-end:.25rem}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):after{margin-inline-start:.25rem}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:where(:not([data-icon-start=font])):before,[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:where(:not([data-icon-end=font])):after{content:\"\\2060\";padding:calc(var(--tui-icon-size, 1rem) / 2);vertical-align:super;font-size:0;line-height:0;box-sizing:border-box;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;transition:none}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-icon-start=font]:before,[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-icon-end=font]:after{display:inline;font-size:var(--tui-icon-size, 1rem);vertical-align:sub}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[tuiChevron]:after{display:inline-block;vertical-align:initial}@media(hover:hover)and (pointer:fine){[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){text-decoration-color:currentColor}}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-state=hover]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-state=active]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.19.0\"])[data-appearance=\"\"]{text-decoration-line:underline;text-decoration-style:solid}\n"] }]
20
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-link-${TUI_VERSION}`, styles: ["[tuiLink]:where(*[data-tui-version=\"5.20.0\"]){transition-property:color,text-decoration,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);padding:0;background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;border-radius:.125rem;outline-width:1px;outline-offset:-1px;text-underline-offset:.2em;text-decoration:none dashed currentColor 1px;text-decoration-color:color-mix(in lch,currentColor,transparent)}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):before{margin-inline-end:.25rem}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):after{margin-inline-start:.25rem}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:where(:not([data-icon-start=font])):before,[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:where(:not([data-icon-end=font])):after{content:\"\\2060\";padding:calc(var(--tui-icon-size, 1rem) / 2);vertical-align:super;font-size:0;line-height:0;box-sizing:border-box;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;transition:none}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-icon-start=font]:before,[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-icon-end=font]:after{display:inline;font-size:var(--tui-icon-size, 1rem);vertical-align:sub}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[tuiChevron]:after{display:inline-block;vertical-align:initial}@media(hover:hover)and (pointer:fine){[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){text-decoration-color:currentColor}}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-state=hover]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-state=active]{text-decoration-color:currentColor}[tuiLink]:where(*[data-tui-version=\"5.20.0\"])[data-appearance=\"\"]{text-decoration-line:underline;text-decoration-style:solid}\n"] }]
21
21
  }] });
22
22
  class TuiLink {
23
23
  constructor() {
@@ -46,11 +46,11 @@ const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(ngDevMode ? 'TUI_NOTIFIC
46
46
 
47
47
  class Styles {
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-notification-5.19.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--t-offset) var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-offset: calc((var(--t-height) - var(--tui-lh)) / 2);--t-height: var(--tui-height-l);--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;inset-inline-start:-1rem;inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .15 * var(--t-zoom)));transform:translateY(-100%)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{padding:var(--t-offset) .5rem;font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:before{inset-inline-start:calc(-1rem * (1 - .2 * var(--t-zoom)));inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .1 * var(--t-zoom)));font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]{padding:var(--t-offset) var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-m)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-notification-5.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--t-offset) var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-offset: calc((var(--t-height) - var(--tui-lh)) / 2);--t-height: var(--tui-height-l);--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;inset-inline-start:-1rem;inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .15 * var(--t-zoom)));transform:translateY(-100%)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{padding:var(--t-offset) .5rem;font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:before{inset-inline-start:calc(-1rem * (1 - .2 * var(--t-zoom)));inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .1 * var(--t-zoom)));font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]{padding:var(--t-offset) var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-m)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
52
52
  type: Component,
53
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-notification-${TUI_VERSION}`, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--t-offset) var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-offset: calc((var(--t-height) - var(--tui-lh)) / 2);--t-height: var(--tui-height-l);--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;inset-inline-start:-1rem;inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .15 * var(--t-zoom)));transform:translateY(-100%)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{padding:var(--t-offset) .5rem;font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:before{inset-inline-start:calc(-1rem * (1 - .2 * var(--t-zoom)));inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .1 * var(--t-zoom)));font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]{padding:var(--t-offset) var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-m)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.19.0\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"] }]
53
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-notification-${TUI_VERSION}`, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--t-offset) var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-offset: calc((var(--t-height) - var(--tui-lh)) / 2);--t-height: var(--tui-height-l);--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;inset-inline-start:-1rem;inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .15 * var(--t-zoom)));transform:translateY(-100%)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{padding:var(--t-offset) .5rem;font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:before{inset-inline-start:calc(-1rem * (1 - .2 * var(--t-zoom)));inset-block-start:calc((var(--t-offset) + var(--tui-lh)) * (1 - .1 * var(--t-zoom)));font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]{padding:var(--t-offset) var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m);--t-height: var(--tui-height-m)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.20.0\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"] }]
54
54
  }] });
55
55
  class TuiNotificationDirective {
56
56
  constructor() {
@@ -42,7 +42,7 @@ class TuiRadioComponent {
42
42
  this.appearance.set(this.options.appearance(this.el));
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiRadioComponent, isStandalone: true, selector: "input[type=\"radio\"][tuiRadio]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._readonly": "!control", "disabled": "!control || control.disabled" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;inset-block-start:0;inset-inline-start:0;inset-block-end:0;inset-inline-end:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.19.0\"])[data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiRadioComponent, isStandalone: true, selector: "input[type=\"radio\"][tuiRadio]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._readonly": "!control", "disabled": "!control || control.disabled" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;inset-block-start:0;inset-inline-start:0;inset-block-end:0;inset-inline-end:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.20.0\"])[data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiRadioComponent, decorators: [{
48
48
  type: Component,
@@ -56,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
56
56
  '[attr.data-size]': 'size()',
57
57
  '[class._readonly]': '!control',
58
58
  '[disabled]': '!control || control.disabled',
59
- }, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;inset-block-start:0;inset-inline-start:0;inset-block-end:0;inset-inline-end:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.19.0\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.19.0\"])[data-mode~=invalid]{color:#fff}\n"] }]
59
+ }, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;inset-block-start:0;inset-inline-start:0;inset-block-end:0;inset-inline-end:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.20.0\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.20.0\"])[data-mode~=invalid]{color:#fff}\n"] }]
60
60
  }] });
61
61
 
62
62
  class TuiRadioDirective {
@@ -36,7 +36,7 @@ class TuiRoot {
36
36
  : !this.child;
37
37
  }
38
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "5.19.0" }, listeners: { "document:fullscreenchange": "top.set(parent)", "touchstart.passive.zoneless": "0" }, properties: { "class._mobile": "breakpoint() === \"mobile\"", "class.tui-liquid-glass": "liquidGlass", "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: `
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "5.20.0" }, listeners: { "document:fullscreenchange": "top.set(parent)", "touchstart.passive.zoneless": "0" }, properties: { "class._mobile": "breakpoint() === \"mobile\"", "class.tui-liquid-glass": "liquidGlass", "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: `
40
40
  <div class="t-root-content"><ng-content /></div>
41
41
  @if (top()) {
42
42
  @if (scrollbars) {
@@ -44,7 +44,7 @@ class TuiRoot {
44
44
  }
45
45
  <tui-popups><ng-content select="tuiOverContent" /></tui-popups>
46
46
  }
47
- `, isInline: true, styles: ["@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes tuiBlur{0%{filter:blur(var(--tui-blur, .25rem))}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:var(--tui-curve-productive-entrance);pointer-events:none}.tui-leave{animation-direction:reverse;animation-timing-function:var(--tui-curve-productive-exit)}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root:has(>tui-popups tui-modal)>.t-root-content{interactivity:inert}tui-root>.t-root-scrollbar{position:fixed;inset:0;z-index:0}.t-root-content{position:relative;inset-block-start:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
47
+ `, isInline: true, styles: ["@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes tuiBlur{0%{filter:blur(var(--tui-blur, .25rem))}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:var(--tui-curve-productive-entrance);pointer-events:none}.tui-leave{animation-direction:reverse;animation-timing-function:var(--tui-curve-productive-exit)}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root:has(>tui-popups tui-modal)>.t-root-content{interactivity:inert}tui-root>.t-root-scrollbar{position:fixed;inset:0;z-index:0;animation-timeline:scroll(x root),scroll(y root)}tui-root>.t-root-scrollbar .t-bar.t-bar_vertical .t-thumb{animation-timeline:scroll(y root)}tui-root>.t-root-scrollbar .t-bar.t-bar_horizontal .t-thumb{animation-timeline:scroll(x root)}.t-root-content{position:relative;inset-block-start:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiRoot, decorators: [{
50
50
  type: Component,
@@ -65,7 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
65
65
  '(document:fullscreenchange)': 'top.set(parent)',
66
66
  // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490
67
67
  '(touchstart.passive.zoneless)': '0',
68
- }, styles: ["@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes tuiBlur{0%{filter:blur(var(--tui-blur, .25rem))}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:var(--tui-curve-productive-entrance);pointer-events:none}.tui-leave{animation-direction:reverse;animation-timing-function:var(--tui-curve-productive-exit)}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root:has(>tui-popups tui-modal)>.t-root-content{interactivity:inert}tui-root>.t-root-scrollbar{position:fixed;inset:0;z-index:0}.t-root-content{position:relative;inset-block-start:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
68
+ }, styles: ["@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes tuiBlur{0%{filter:blur(var(--tui-blur, .25rem))}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:var(--tui-curve-productive-entrance);pointer-events:none}.tui-leave{animation-direction:reverse;animation-timing-function:var(--tui-curve-productive-exit)}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root:has(>tui-popups tui-modal)>.t-root-content{interactivity:inert}tui-root>.t-root-scrollbar{position:fixed;inset:0;z-index:0;animation-timeline:scroll(x root),scroll(y root)}tui-root>.t-root-scrollbar .t-bar.t-bar_vertical .t-thumb{animation-timeline:scroll(y root)}tui-root>.t-root-scrollbar .t-bar.t-bar_horizontal .t-thumb{animation-timeline:scroll(x root)}.t-root-content{position:relative;inset-block-start:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
69
69
  }] });
70
70
 
71
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPopups} from '@taiga-ui/core/portals/popup';\nimport {\n TUI_ANIMATIONS_SPEED,\n TUI_BREAKPOINT,\n TUI_REDUCED_MOTION,\n} from '@taiga-ui/core/tokens';\nimport {\n TUI_LIQUID_GLASS,\n TUI_OPTIONS,\n tuiGetDuration,\n} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n selector: 'tui-root',\n imports: [TuiPopups, TuiScrollControls],\n template: `\n <div class=\"t-root-content\"><ng-content /></div>\n @if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups><ng-content select=\"tuiOverContent\" /></tui-popups>\n }\n `,\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[class._mobile]': 'breakpoint() === \"mobile\"',\n '[class.tui-liquid-glass]': 'liquidGlass',\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '(document:fullscreenchange)': 'top.set(parent)',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n private readonly child = !!inject(TuiRoot, {optional: true, skipSelf: true});\n\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly top = signal(this.parent);\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n protected readonly liquidGlass = inject(TUI_LIQUID_GLASS);\n\n protected readonly scrollbars =\n !inject(WA_IS_MOBILE) &&\n !this.child &&\n inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&\n inject(TUI_OPTIONS).scrollbars !== 'native';\n\n protected get parent(): boolean {\n return this.doc.fullscreenElement\n ? this.doc.fullscreenElement === this.el\n : !this.child;\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-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPopups} from '@taiga-ui/core/portals/popup';\nimport {\n TUI_ANIMATIONS_SPEED,\n TUI_BREAKPOINT,\n TUI_REDUCED_MOTION,\n} from '@taiga-ui/core/tokens';\nimport {\n TUI_LIQUID_GLASS,\n TUI_OPTIONS,\n tuiGetDuration,\n} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n selector: 'tui-root',\n imports: [TuiPopups, TuiScrollControls],\n template: `\n <div class=\"t-root-content\"><ng-content /></div>\n @if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups><ng-content select=\"tuiOverContent\" /></tui-popups>\n }\n `,\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[class._mobile]': 'breakpoint() === \"mobile\"',\n '[class.tui-liquid-glass]': 'liquidGlass',\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '(document:fullscreenchange)': 'top.set(parent)',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n private readonly child = !!inject(TuiRoot, {optional: true, skipSelf: true});\n\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly top = signal(this.parent);\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n protected readonly liquidGlass = inject(TUI_LIQUID_GLASS);\n\n protected readonly scrollbars =\n !inject(WA_IS_MOBILE) &&\n !this.child &&\n inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&\n inject(TUI_OPTIONS).scrollbars !== 'native';\n\n protected get parent(): boolean {\n return this.doc.fullscreenElement\n ? this.doc.fullscreenElement === this.el\n : !this.child;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  import { CdkScrollable } from '@angular/cdk/scrolling';
2
2
  import { DOCUMENT, AsyncPipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, ElementRef, inject, Directive, Injectable, input, ChangeDetectionStrategy, Component, DestroyRef, effect } from '@angular/core';
4
+ import { InjectionToken, ElementRef, inject, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, Injectable, input, DestroyRef, effect } from '@angular/core';
5
5
  import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
6
6
  import { tuiInjectElement, tuiGetElementOffset } from '@taiga-ui/cdk/utils/dom';
7
+ import { TUI_TIMELINE_SUPPORT } from '@taiga-ui/core/tokens';
8
+ import { Observable, throttleTime, map, startWith, distinctUntilChanged, merge, filter, switchMap, takeUntil, of, timer } from 'rxjs';
7
9
  import { WA_ANIMATION_FRAME } from '@ng-web-apis/common';
8
10
  import { tuiZonefreeScheduler, tuiZoneOptimized, tuiTypedFromEvent, tuiZonefree, tuiScrollFrom } from '@taiga-ui/cdk/observables';
9
- import { Observable, throttleTime, map, startWith, distinctUntilChanged, merge, filter, switchMap, takeUntil, timer } from 'rxjs';
11
+ import { TUI_VERSION } from '@taiga-ui/cdk/constants';
10
12
  import { tuiProvide, tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
13
+ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
11
14
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
15
  import { WA_IS_IOS } from '@ng-web-apis/platform';
13
16
 
@@ -15,15 +18,27 @@ const SCROLL_REF_SELECTOR = '[tuiScrollRef]';
15
18
  const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {
16
19
  factory: () => new ElementRef(inject(DOCUMENT).documentElement),
17
20
  });
21
+ class Styles {
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-scroll-ref-5.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]){timeline-scope:--t-scrollbar-y,--t-scrollbar-x;scroll-timeline:--t-scrollbar-x x,--t-scrollbar-y y}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native){scrollbar-width:none;-ms-overflow-style:none}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native)::-webkit-scrollbar,[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native)::-webkit-scrollbar-thumb{display:none}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):where(cdk-virtual-scroll-viewport){display:flex;scroll-timeline:--t-scrollbar-x x,--t-scrollbar-y y}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
26
+ type: Component,
27
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-scroll-ref-${TUI_VERSION}`, styles: ["[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]){timeline-scope:--t-scrollbar-y,--t-scrollbar-x;scroll-timeline:--t-scrollbar-x x,--t-scrollbar-y y}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native){scrollbar-width:none;-ms-overflow-style:none}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native)::-webkit-scrollbar,[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):not(._native)::-webkit-scrollbar-thumb{display:none}[tuiScrollRef]:where(*[data-tui-version=\"5.20.0\"]):where(cdk-virtual-scroll-viewport){display:flex;scroll-timeline:--t-scrollbar-x x,--t-scrollbar-y y}\n"] }]
28
+ }] });
18
29
  class TuiScrollRef {
30
+ constructor() {
31
+ this.nothing = tuiWithStyles(Styles);
32
+ }
19
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollRef, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiScrollRef, isStandalone: true, selector: "[tuiScrollRef]", providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)], ngImport: i0 }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiScrollRef, isStandalone: true, selector: "[tuiScrollRef]", host: { attributes: { "data-tui-version": "5.20.0", "tuiScrollRef": "" } }, providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)], ngImport: i0 }); }
21
35
  }
22
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollRef, decorators: [{
23
37
  type: Directive,
24
38
  args: [{
25
39
  selector: '[tuiScrollRef]',
26
40
  providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],
41
+ host: { 'data-tui-version': TUI_VERSION, tuiScrollRef: '' },
27
42
  }]
28
43
  }] });
29
44
 
@@ -61,17 +76,21 @@ class TuiScrollbarService extends Observable {
61
76
  })));
62
77
  }
63
78
  getScrolled({ clientY, clientX }, offsetY, offsetX) {
79
+ const rect = this.el.parentElement.getBoundingClientRect();
80
+ const { top, left, right, width, height } = rect;
64
81
  const { offsetHeight, offsetWidth } = this.el;
65
- const { top, left, right, width, height } = this.el.parentElement.getBoundingClientRect();
66
82
  const rtl = this.el.matches('[dir="rtl"] :scope');
67
83
  const inline = rtl ? right : left;
68
84
  const multiplier = rtl ? -1 : 1;
69
85
  const maxTop = this.element.scrollHeight - height;
70
86
  const maxLeft = this.element.scrollWidth - width;
71
- const scrolledTop = (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);
72
- const scrolledLeft = (clientX - inline - offsetWidth * offsetX * multiplier) /
87
+ const y = (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);
88
+ const x = (clientX - inline - offsetWidth * offsetX * multiplier) /
73
89
  (width - offsetWidth);
74
- return [maxTop * scrolledTop, maxLeft * scrolledLeft];
90
+ return [
91
+ width > height ? undefined : maxTop * y,
92
+ width > height ? maxLeft * x : undefined,
93
+ ];
75
94
  }
76
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
96
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbarService }); }
@@ -91,27 +110,17 @@ class TuiScrollbarPosition extends Observable {
91
110
  constructor() {
92
111
  super((subscriber) => this.stream$.subscribe(subscriber));
93
112
  this.scrollRef = inject(TUI_SCROLL_REF);
94
- this.stream$ = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())), tuiScrollFrom(this.el)).pipe(tuiZonefree(), map(() => {
95
- const dimension = {
96
- scrollTop: this.el.scrollTop,
97
- scrollHeight: this.el.scrollHeight,
98
- clientHeight: this.el.clientHeight,
99
- scrollLeft: this.el.scrollLeft,
100
- scrollWidth: this.el.scrollWidth,
101
- clientWidth: this.el.clientWidth,
102
- };
103
- const thumb = `${this.getThumb(dimension) * 100}%`;
104
- const view = `${this.getView(dimension) * 100}%`;
105
- return this.tuiScrollbar() === 'vertical'
106
- ? {
107
- top: thumb,
108
- height: view,
109
- }
110
- : {
111
- insetInlineStart: thumb,
112
- width: view,
113
- };
114
- }));
113
+ this.stream$ = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())), tuiScrollFrom(this.el)).pipe(tuiZonefree(), map(() => ({
114
+ scrollTop: this.el.scrollTop,
115
+ scrollHeight: this.el.scrollHeight,
116
+ clientHeight: this.el.clientHeight,
117
+ scrollLeft: this.el.scrollLeft,
118
+ scrollWidth: this.el.scrollWidth,
119
+ clientWidth: this.el.clientWidth,
120
+ })), map((dimensions) => ({
121
+ insetBlockStart: `${this.getThumb(dimensions) * 100}%`,
122
+ blockSize: `${this.getView(dimensions) * 100}%`,
123
+ })));
115
124
  this.tuiScrollbar = input('vertical');
116
125
  }
117
126
  get el() {
@@ -158,22 +167,16 @@ class TuiScrollbarDirective {
158
167
  this.scrollSub = inject(TuiScrollbarService)
159
168
  .pipe(takeUntilDestroyed())
160
169
  .subscribe(([top, left]) => {
161
- this.scrollRef.nativeElement.style.scrollBehavior = 'auto';
162
- if (this.tuiScrollbar() === 'horizontal') {
163
- this.scrollRef.nativeElement.scrollLeft = left;
164
- }
165
- else {
166
- this.scrollRef.nativeElement.scrollTop = top;
167
- }
168
- this.scrollRef.nativeElement.style.scrollBehavior = '';
170
+ this.scrollRef.nativeElement.scrollTo({ top, left, behavior: 'instant' });
169
171
  });
170
- this.styleSub = inject(TuiScrollbarPosition)
171
- .pipe(takeUntilDestroyed())
172
- .subscribe((position) => Object.assign(this.style, position));
173
- this.tuiScrollbar = input('vertical');
172
+ if (!inject(TUI_TIMELINE_SUPPORT)) {
173
+ inject(TuiScrollbarPosition)
174
+ .pipe(takeUntilDestroyed())
175
+ .subscribe((position) => Object.assign(this.style, position));
176
+ }
174
177
  }
175
178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
176
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiScrollbarDirective, isStandalone: true, selector: "[tuiScrollbar]", inputs: { tuiScrollbar: { classPropertyName: "tuiScrollbar", publicName: "tuiScrollbar", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TuiScrollbarService], hostDirectives: [{ directive: TuiScrollbarPosition, inputs: ["tuiScrollbar", "tuiScrollbar"] }], ngImport: i0 }); }
179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiScrollbarDirective, isStandalone: true, selector: "[tuiScrollbar]", providers: [TuiScrollbarService], hostDirectives: [{ directive: TuiScrollbarPosition, inputs: ["tuiScrollbar", "tuiScrollbar"] }], ngImport: i0 }); }
177
180
  }
178
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbarDirective, decorators: [{
179
182
  type: Directive,
@@ -182,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
182
185
  providers: [TuiScrollbarService],
183
186
  hostDirectives: [{ directive: TuiScrollbarPosition, inputs: ['tuiScrollbar'] }],
184
187
  }]
185
- }] });
188
+ }], ctorParameters: () => [] });
186
189
 
187
190
  const TUI_DEFAULT_SCROLLBAR_OPTIONS = { mode: 'always' };
188
191
  const [TUI_SCROLLBAR_OPTIONS, tuiScrollbarOptionsProvider] = tuiCreateOptions(TUI_DEFAULT_SCROLLBAR_OPTIONS);
@@ -192,19 +195,20 @@ class TuiScrollControls {
192
195
  this.scrollable = inject(CdkScrollable, { optional: true, host: true });
193
196
  this.el = tuiInjectElement();
194
197
  this.nativeScrollbar = inject(TUI_SCROLLBAR_OPTIONS).mode === 'native';
195
- this.refresh$ = inject(TuiScrollControlsService);
198
+ this.timeline = inject(TUI_TIMELINE_SUPPORT);
199
+ this.refresh$ = this.timeline
200
+ ? of([true, true])
201
+ : inject(TuiScrollControlsService);
196
202
  }
197
203
  ngOnInit() {
198
- this.scrollable
199
- ?.getElementRef()
200
- .nativeElement.insertBefore(this.el, this.scrollable.getElementRef().nativeElement.firstChild);
204
+ this.scrollable?.getElementRef().nativeElement.prepend?.(this.el);
201
205
  }
202
206
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiScrollControls, isStandalone: true, selector: "tui-scroll-controls", providers: [TuiScrollControlsService], ngImport: i0, template: "@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n", styles: [":host{position:sticky;z-index:1;display:block;inset-block-start:0;inset-inline-start:0;min-inline-size:calc(100% - 1px);min-block-size:calc(100% - 1px);max-inline-size:calc(100% - 1px);max-block-size:calc(100% - 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none;overflow:hidden;color:var(--tui-text-primary)}::ng-deep [tuiScrollable]{scrollbar-width:none;-ms-overflow-style:none}::ng-deep [tuiScrollable]::-webkit-scrollbar,::ng-deep [tuiScrollable]::-webkit-scrollbar-thumb{display:none}.t-bar{position:absolute;inset-inline-end:0;pointer-events:auto}.t-bar.tui-enter,.t-bar.tui-leave{animation-name:tuiFade}.t-bar_vertical{inset-block:.25rem;inline-size:.875rem}.t-bar_horizontal{inset-block-end:0;inset-inline-start:0;block-size:.875rem}.t-bar_has-horizontal{inset-block-end:.5rem}.t-bar_has-vertical{inset-inline-end:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:var(--tui-curve-productive-standard);position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{inset-inline-end:0;inline-size:.75rem;min-block-size:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{inline-size:.875rem}.t-bar_horizontal .t-thumb{inset-block-end:0;block-size:.75rem;min-inline-size:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{block-size:.875rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }, { kind: "directive", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: ["tuiScrollbar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
207
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiScrollControls, isStandalone: true, selector: "tui-scroll-controls", host: { properties: { "class._timeline": "timeline" } }, providers: [TuiScrollControlsService], ngImport: i0, template: "@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n", styles: ["@property --t-scroll-start{syntax: \"<number>\"; inherits: true; initial-value: 0;}@property --t-scroll-end{syntax: \"<number>\"; inherits: true; initial-value: 0;}@keyframes tuiScrollbarStart{0%{--t-scroll-start: 1}to{--t-scroll-start: 0}}@keyframes tuiScrollbarEnd{0%{--t-scroll-end: 0}to{--t-scroll-end: 1}}@keyframes tuiScrollbar{0%,to{--t-opacity: 1}}@keyframes tuiScrollbarX{0%,to{--t-events-x: auto}}@keyframes tuiScrollbarY{0%,to{--t-events-y: auto}}:host{position:sticky;z-index:1;display:block;inset-block-start:0;inset-inline-start:0;min-inline-size:calc(100% - 1px);min-block-size:calc(100% - 1px);max-inline-size:calc(100% - 1px);max-block-size:calc(100% - 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none;overflow:hidden;color:var(--tui-text-primary);container-type:size;animation-name:tuiScrollbarX,tuiScrollbarY;animation-timeline:--t-scrollbar-x,--t-scrollbar-y;--t-events-y: none;--t-events-x: none}:host:not(._timeline){--t-events-y: auto;--t-events-x: auto}:host:not(._timeline) .t-thumb{--t-opacity: 1}::ng-deep [tuiScrollable]{scrollbar-width:none;-ms-overflow-style:none}::ng-deep [tuiScrollable]::-webkit-scrollbar,::ng-deep [tuiScrollable]::-webkit-scrollbar-thumb{display:none}.t-bar{position:absolute;inset-inline-end:0;inset-block:.25rem;inline-size:.875rem;pointer-events:var(--t-events-y)}.t-bar.tui-enter,.t-bar.tui-leave{animation-name:tuiFade}.t-bar_horizontal{writing-mode:vertical-lr;direction:ltr;pointer-events:var(--t-events-x)}:host-context([dir=\"rtl\"]) .t-bar_horizontal{writing-mode:vertical-rl}.t-bar_horizontal .t-thumb{animation-timeline:--t-scrollbar-x;animation-range:0 calc(100% + 100cqi),calc(0% - 100cqi) 100%}.t-thumb{transition-property:all;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;inline-size:.75rem;min-block-size:1.25rem;inset-block-start:min(calc(100% - var(--t-scroll-start) * 100%),calc(100% - 1.25rem));inset-block-end:calc(100% - var(--t-scroll-end) * 100%);inset-inline-end:0;opacity:calc(.2 * var(--t-opacity));animation-name:tuiScrollbarStart,tuiScrollbarEnd,tuiScrollbar;animation-timing-function:linear;animation-timeline:--t-scrollbar-y;animation-range:0 calc(100% + 100cqb),calc(0% - 100cqb) 100%;animation-fill-mode:both;--t-opacity: 0}.t-thumb:hover{opacity:calc(.24 * var(--t-opacity))}.t-thumb:active{opacity:calc(.48 * var(--t-opacity))}.t-bar:hover .t-thumb,.t-bar .t-thumb:active{inline-size:.875rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }, { kind: "directive", type: TuiScrollbarDirective, selector: "[tuiScrollbar]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
204
208
  }
205
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollControls, decorators: [{
206
210
  type: Component,
207
- args: [{ selector: 'tui-scroll-controls', imports: [AsyncPipe, TuiAnimated, TuiScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [TuiScrollControlsService], template: "@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n", styles: [":host{position:sticky;z-index:1;display:block;inset-block-start:0;inset-inline-start:0;min-inline-size:calc(100% - 1px);min-block-size:calc(100% - 1px);max-inline-size:calc(100% - 1px);max-block-size:calc(100% - 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none;overflow:hidden;color:var(--tui-text-primary)}::ng-deep [tuiScrollable]{scrollbar-width:none;-ms-overflow-style:none}::ng-deep [tuiScrollable]::-webkit-scrollbar,::ng-deep [tuiScrollable]::-webkit-scrollbar-thumb{display:none}.t-bar{position:absolute;inset-inline-end:0;pointer-events:auto}.t-bar.tui-enter,.t-bar.tui-leave{animation-name:tuiFade}.t-bar_vertical{inset-block:.25rem;inline-size:.875rem}.t-bar_horizontal{inset-block-end:0;inset-inline-start:0;block-size:.875rem}.t-bar_has-horizontal{inset-block-end:.5rem}.t-bar_has-vertical{inset-inline-end:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:var(--tui-curve-productive-standard);position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{inset-inline-end:0;inline-size:.75rem;min-block-size:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{inline-size:.875rem}.t-bar_horizontal .t-thumb{inset-block-end:0;block-size:.75rem;min-inline-size:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{block-size:.875rem}\n"] }]
211
+ args: [{ selector: 'tui-scroll-controls', imports: [AsyncPipe, TuiAnimated, TuiScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [TuiScrollControlsService], host: { '[class._timeline]': 'timeline' }, template: "@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n", styles: ["@property --t-scroll-start{syntax: \"<number>\"; inherits: true; initial-value: 0;}@property --t-scroll-end{syntax: \"<number>\"; inherits: true; initial-value: 0;}@keyframes tuiScrollbarStart{0%{--t-scroll-start: 1}to{--t-scroll-start: 0}}@keyframes tuiScrollbarEnd{0%{--t-scroll-end: 0}to{--t-scroll-end: 1}}@keyframes tuiScrollbar{0%,to{--t-opacity: 1}}@keyframes tuiScrollbarX{0%,to{--t-events-x: auto}}@keyframes tuiScrollbarY{0%,to{--t-events-y: auto}}:host{position:sticky;z-index:1;display:block;inset-block-start:0;inset-inline-start:0;min-inline-size:calc(100% - 1px);min-block-size:calc(100% - 1px);max-inline-size:calc(100% - 1px);max-block-size:calc(100% - 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none;overflow:hidden;color:var(--tui-text-primary);container-type:size;animation-name:tuiScrollbarX,tuiScrollbarY;animation-timeline:--t-scrollbar-x,--t-scrollbar-y;--t-events-y: none;--t-events-x: none}:host:not(._timeline){--t-events-y: auto;--t-events-x: auto}:host:not(._timeline) .t-thumb{--t-opacity: 1}::ng-deep [tuiScrollable]{scrollbar-width:none;-ms-overflow-style:none}::ng-deep [tuiScrollable]::-webkit-scrollbar,::ng-deep [tuiScrollable]::-webkit-scrollbar-thumb{display:none}.t-bar{position:absolute;inset-inline-end:0;inset-block:.25rem;inline-size:.875rem;pointer-events:var(--t-events-y)}.t-bar.tui-enter,.t-bar.tui-leave{animation-name:tuiFade}.t-bar_horizontal{writing-mode:vertical-lr;direction:ltr;pointer-events:var(--t-events-x)}:host-context([dir=\"rtl\"]) .t-bar_horizontal{writing-mode:vertical-rl}.t-bar_horizontal .t-thumb{animation-timeline:--t-scrollbar-x;animation-range:0 calc(100% + 100cqi),calc(0% - 100cqi) 100%}.t-thumb{transition-property:all;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;inline-size:.75rem;min-block-size:1.25rem;inset-block-start:min(calc(100% - var(--t-scroll-start) * 100%),calc(100% - 1.25rem));inset-block-end:calc(100% - var(--t-scroll-end) * 100%);inset-inline-end:0;opacity:calc(.2 * var(--t-opacity));animation-name:tuiScrollbarStart,tuiScrollbarEnd,tuiScrollbar;animation-timing-function:linear;animation-timeline:--t-scrollbar-y;animation-range:0 calc(100% + 100cqb),calc(0% - 100cqb) 100%;animation-fill-mode:both;--t-opacity: 0}.t-thumb:hover{opacity:calc(.24 * var(--t-opacity))}.t-thumb:active{opacity:calc(.48 * var(--t-opacity))}.t-bar:hover .t-thumb,.t-bar .t-thumb:active{inline-size:.875rem}\n"] }]
208
212
  }] });
209
213
 
210
214
  /**
@@ -216,6 +220,35 @@ const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';
216
220
  * it should control a nested element.
217
221
  */
218
222
  const TUI_SCROLLABLE = 'tui-scrollable';
223
+ /**
224
+ * @deprecated
225
+ * Cannot put it into viewProviders because of https://github.com/angular/angular/issues/65724
226
+ * Cannot put it into providers because it shouldn't leak to content
227
+ * TODO: Remove in v6 together with {@link TuiScrollable}
228
+ */
229
+ class TuiDelegatedGuard {
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDelegatedGuard, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
231
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiDelegatedGuard, isStandalone: true, selector: "[tuiDelegateGuard]", providers: [
232
+ {
233
+ provide: TUI_TIMELINE_SUPPORT,
234
+ useFactory: () => inject(TUI_TIMELINE_SUPPORT, { skipSelf: true }) &&
235
+ !inject(TuiScrollbar).delegated,
236
+ },
237
+ ], ngImport: i0 }); }
238
+ }
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDelegatedGuard, decorators: [{
240
+ type: Directive,
241
+ args: [{
242
+ selector: '[tuiDelegateGuard]',
243
+ providers: [
244
+ {
245
+ provide: TUI_TIMELINE_SUPPORT,
246
+ useFactory: () => inject(TUI_TIMELINE_SUPPORT, { skipSelf: true }) &&
247
+ !inject(TuiScrollbar).delegated,
248
+ },
249
+ ],
250
+ }]
251
+ }] });
219
252
  class TuiScrollbar {
220
253
  constructor() {
221
254
  this.el = tuiInjectElement();
@@ -243,25 +276,25 @@ class TuiScrollbar {
243
276
  this.scrollRef.scrollTo?.(scrollLeft, scrollTop);
244
277
  }
245
278
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
246
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiScrollbar, isStandalone: true, selector: "tui-scrollbar", host: { listeners: { "tui-scrollable.stop": "scrollRef = $event.detail", "tui-scroll-into-view.stop": "scrollIntoView($event.detail)" }, properties: { "class._native-hidden": "options.mode !== \"native\" && (!isIOS || options.mode === \"hidden\")" } }, providers: [
279
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiScrollbar, isStandalone: true, selector: "tui-scrollbar", host: { listeners: { "tui-scrollable.stop": "scrollRef = $event.detail", "tui-scroll-into-view.stop": "scrollIntoView($event.detail)" }, properties: { "class._native": "options.mode === \"native\" || (isIOS && options.mode !== \"hidden\")" } }, providers: [
247
280
  {
248
281
  provide: TUI_SCROLL_REF,
249
282
  useFactory: () => inject(TuiScrollbar).browserScrollRef,
250
283
  },
251
- ], hostDirectives: [{ directive: TuiScrollRef }], ngImport: i0, template: "@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:flex;max-block-size:100%;isolation:isolate;overflow:auto}:host._native-hidden{scrollbar-width:none;-ms-overflow-style:none}:host._native-hidden::-webkit-scrollbar,:host._native-hidden::-webkit-scrollbar-thumb{display:none}:host .t-hover-mode:not(:active){transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}:host:hover>.t-hover-mode{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:1}.t-content{isolation:isolate;flex:1;flex-basis:auto;inline-size:100%;block-size:max-content}.t-content_delegated{block-size:100%}.t-bars{color:var(--tui-text-primary)}\n"], dependencies: [{ kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
284
+ ], hostDirectives: [{ directive: TuiScrollRef }], ngImport: i0, template: "@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n tuiDelegateGuard\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:flex;max-block-size:100%;isolation:isolate;overflow:auto}:host .t-hover-mode:not(:active){transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}:host:hover>.t-hover-mode{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:1}.t-content{isolation:isolate;flex:1;flex-basis:auto;inline-size:100%;min-inline-size:fit-content;block-size:max-content;view-timeline:--t-scrollbar-x x,--t-scrollbar-y y}.t-content_delegated{block-size:100%}.t-bars{color:var(--tui-text-primary)}\n"], dependencies: [{ kind: "directive", type: TuiDelegatedGuard, selector: "[tuiDelegateGuard]" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
252
285
  }
253
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiScrollbar, decorators: [{
254
287
  type: Component,
255
- args: [{ selector: 'tui-scrollbar', imports: [TuiScrollControls], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
288
+ args: [{ selector: 'tui-scrollbar', imports: [TuiDelegatedGuard, TuiScrollControls], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
256
289
  {
257
290
  provide: TUI_SCROLL_REF,
258
291
  useFactory: () => inject(TuiScrollbar).browserScrollRef,
259
292
  },
260
293
  ], hostDirectives: [TuiScrollRef], host: {
261
- '[class._native-hidden]': 'options.mode !== "native" && (!isIOS || options.mode === "hidden")',
294
+ '[class._native]': 'options.mode === "native" || (isIOS && options.mode !== "hidden")',
262
295
  [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',
263
296
  [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',
264
- }, template: "@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:flex;max-block-size:100%;isolation:isolate;overflow:auto}:host._native-hidden{scrollbar-width:none;-ms-overflow-style:none}:host._native-hidden::-webkit-scrollbar,:host._native-hidden::-webkit-scrollbar-thumb{display:none}:host .t-hover-mode:not(:active){transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}:host:hover>.t-hover-mode{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:1}.t-content{isolation:isolate;flex:1;flex-basis:auto;inline-size:100%;block-size:max-content}.t-content_delegated{block-size:100%}.t-bars{color:var(--tui-text-primary)}\n"] }]
297
+ }, template: "@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n tuiDelegateGuard\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:flex;max-block-size:100%;isolation:isolate;overflow:auto}:host .t-hover-mode:not(:active){transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}:host:hover>.t-hover-mode{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:1}.t-content{isolation:isolate;flex:1;flex-basis:auto;inline-size:100%;min-inline-size:fit-content;block-size:max-content;view-timeline:--t-scrollbar-x x,--t-scrollbar-y y}.t-content_delegated{block-size:100%}.t-bars{color:var(--tui-text-primary)}\n"] }]
265
298
  }] });
266
299
 
267
300
  /**