@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
@@ -11,11 +11,11 @@ const [TUI_CELL_OPTIONS, tuiCellOptionsProvider] = tuiCreateOptions({ height: 'n
11
11
 
12
12
  class Styles {
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-cell-5.19.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiCell]:where(*[data-tui-version=\"5.19.0\"]){--t-pad: .125rem 1rem;--t-radius: var(--tui-radius-s);transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;text-align:start;box-sizing:content-box;isolation:isolate;color:var(--tui-text-primary);padding:var(--t-pad);min-block-size:var(--t-block-size);border-radius:var(--t-radius)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(button,label):not(:disabled):active{background:var(--tui-background-neutral-1)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):disabled,[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-state=disabled]{opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):disabled>*:not([tuiTooltip]),[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-state=disabled]>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(label):has(input:disabled){opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(label):has(input:disabled)>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiAccessories]{position:relative;display:flex;max-block-size:var(--t-block-size);align-items:center;align-self:stretch;margin-inline-start:auto}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions]{position:absolute;z-index:1;inset-inline-end:0;padding-inline-end:inherit;--t-group-mask: none;--t-group-mask-end: none;--t-group-mask-start: none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions]~*{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] a{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] button:focus-visible,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] a:focus-visible{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{display:flex;align-items:center;gap:.25rem;color:var(--tui-text-secondary)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]{flex:3 7 30%;align-items:normal;text-align:start;gap:.25rem .5rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]{flex-direction:row;justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:3 7 30%;max-inline-size:max-content;white-space:nowrap}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:7 3 70%}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]{justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]~[tuiTitle]{flex:7 3 70%;max-inline-size:max-content;margin-inline-start:auto;text-align:end;align-items:flex-end}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]~[tuiTitle][tuiFade]{align-items:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) tui-badge-notification[data-size=xs]{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:.375rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-block-size: calc(var(--tui-height-s) - .125rem);--t-pad: .1875rem 1rem;gap:.5rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-height=spacious]{--t-pad: .4375rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-height=compact]{--t-block-size: calc(var(--tui-height-s) - .25rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiTitle]{max-block-size:100%;font:var(--tui-typography-ui-s);gap:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-ui-2xs)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiAvatar]{--t-size: 1.5rem;--t-radius: var(--tui-radius-m);font:var(--tui-typography-body-m);font-size:.5625rem;margin:.1875rem 0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]{--t-block-size: calc(var(--tui-height-m) - .75rem);--t-pad: .375rem 1rem;gap:.5rem .75rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-height=spacious]{--t-pad: 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-height=compact]{--t-block-size: calc(var(--tui-height-m) - .5rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-s);gap:.0625rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-ui-xs)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiAvatar]{--t-size: 2rem;--t-radius: var(--tui-radius-m);align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: .5rem 1rem;--t-radius: var(--tui-radius-l);gap:.5rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l][data-height=spacious]{--t-pad: 1.25rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l][data-height=compact]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l] [tuiAvatar]{--t-size: 2.5rem;font:var(--tui-typography-body-m);font-weight:700;align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions]~*{opacity:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] a,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] label{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.125rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellStretch]{inline-size:100%;margin-inline:-1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]{display:grid;grid-auto-flow:column;grid-auto-columns:fit-content(100%);grid-template-columns:auto 1fr}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]:has(>[tuiTitle]:first-child){grid-template-columns:1fr}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]>*{grid-row:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiAccessories]{grid-row:2}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiTitle],[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiSubtitle]{display:grid}@media(hover:hover)and (pointer:fine){a[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]),button[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]),label[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]){background:var(--tui-background-neutral-1);cursor:pointer}label[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:has(input:disabled)){background:var(--tui-background-neutral-1);cursor:pointer}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-cell-5.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiCell]:where(*[data-tui-version=\"5.20.0\"]){--t-pad: .125rem 1rem;--t-radius: var(--tui-radius-s);transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;text-align:start;box-sizing:content-box;isolation:isolate;color:var(--tui-text-primary);padding:var(--t-pad);min-block-size:var(--t-block-size);border-radius:var(--t-radius)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(button,label):not(:disabled):active{background:var(--tui-background-neutral-1)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):disabled,[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-state=disabled]{opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):disabled>*:not([tuiTooltip]),[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-state=disabled]>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(label):has(input:disabled){opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(label):has(input:disabled)>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiAccessories]{position:relative;display:flex;max-block-size:var(--t-block-size);align-items:center;align-self:stretch;margin-inline-start:auto}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions]{position:absolute;z-index:1;inset-inline-end:0;padding-inline-end:inherit;--t-group-mask: none;--t-group-mask-end: none;--t-group-mask-start: none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions]~*{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] a{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] button:focus-visible,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] a:focus-visible{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{display:flex;align-items:center;gap:.25rem;color:var(--tui-text-secondary)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]{flex:3 7 30%;align-items:normal;text-align:start;gap:.25rem .5rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]{flex-direction:row;justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:3 7 30%;max-inline-size:max-content;white-space:nowrap}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:7 3 70%}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]{justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]~[tuiTitle]{flex:7 3 70%;max-inline-size:max-content;margin-inline-start:auto;text-align:end;align-items:flex-end}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]~[tuiTitle][tuiFade]{align-items:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) tui-badge-notification[data-size=xs]{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:.375rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-block-size: calc(var(--tui-height-s) - .125rem);--t-pad: .1875rem 1rem;gap:.5rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-height=spacious]{--t-pad: .4375rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-height=compact]{--t-block-size: calc(var(--tui-height-s) - .25rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiTitle]{max-block-size:100%;font:var(--tui-typography-ui-s);gap:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-ui-2xs)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiAvatar]{--t-size: 1.5rem;--t-radius: var(--tui-radius-m);font:var(--tui-typography-body-m);font-size:.5625rem;margin:.1875rem 0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]{--t-block-size: calc(var(--tui-height-m) - .75rem);--t-pad: .375rem 1rem;gap:.5rem .75rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-height=spacious]{--t-pad: 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-height=compact]{--t-block-size: calc(var(--tui-height-m) - .5rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-s);gap:.0625rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-ui-xs)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiAvatar]{--t-size: 2rem;--t-radius: var(--tui-radius-m);align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: .5rem 1rem;--t-radius: var(--tui-radius-l);gap:.5rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l][data-height=spacious]{--t-pad: 1.25rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l][data-height=compact]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l] [tuiAvatar]{--t-size: 2.5rem;font:var(--tui-typography-body-m);font-weight:700;align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions]~*{opacity:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] a,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] label{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.125rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellStretch]{inline-size:100%;margin-inline:-1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]{display:grid;grid-auto-flow:column;grid-auto-columns:fit-content(100%);grid-template-columns:auto 1fr}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]:has(>[tuiTitle]:first-child){grid-template-columns:1fr}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]>*{grid-row:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiAccessories]{grid-row:2}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiTitle],[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiSubtitle]{display:grid}@media(hover:hover)and (pointer:fine){a[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]),button[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]),label[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]){background:var(--tui-background-neutral-1);cursor:pointer}label[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:has(input:disabled)){background:var(--tui-background-neutral-1);cursor:pointer}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
17
17
  type: Component,
18
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-cell-${TUI_VERSION}`, styles: ["[tuiCell]:where(*[data-tui-version=\"5.19.0\"]){--t-pad: .125rem 1rem;--t-radius: var(--tui-radius-s);transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;text-align:start;box-sizing:content-box;isolation:isolate;color:var(--tui-text-primary);padding:var(--t-pad);min-block-size:var(--t-block-size);border-radius:var(--t-radius)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(button,label):not(:disabled):active{background:var(--tui-background-neutral-1)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):disabled,[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-state=disabled]{opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):disabled>*:not([tuiTooltip]),[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-state=disabled]>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(label):has(input:disabled){opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):is(label):has(input:disabled)>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiAccessories]{position:relative;display:flex;max-block-size:var(--t-block-size);align-items:center;align-self:stretch;margin-inline-start:auto}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions]{position:absolute;z-index:1;inset-inline-end:0;padding-inline-end:inherit;--t-group-mask: none;--t-group-mask-end: none;--t-group-mask-start: none}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions]~*{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] a{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] button:focus-visible,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiCellActions][tuiCellActions] a:focus-visible{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiSubtitle]{display:flex;align-items:center;gap:.25rem;color:var(--tui-text-secondary)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]{flex:3 7 30%;align-items:normal;text-align:start;gap:.25rem .5rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]{flex-direction:row;justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:3 7 30%;max-inline-size:max-content;white-space:nowrap}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:7 3 70%}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]{justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]~[tuiTitle]{flex:7 3 70%;max-inline-size:max-content;margin-inline-start:auto;text-align:end;align-items:flex-end}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) [tuiTitle]~[tuiTitle][tuiFade]{align-items:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]) tui-badge-notification[data-size=xs]{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:.375rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-block-size: calc(var(--tui-height-s) - .125rem);--t-pad: .1875rem 1rem;gap:.5rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-height=spacious]{--t-pad: .4375rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s][data-height=compact]{--t-block-size: calc(var(--tui-height-s) - .25rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiTitle]{max-block-size:100%;font:var(--tui-typography-ui-s);gap:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-ui-2xs)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiAvatar]{--t-size: 1.5rem;--t-radius: var(--tui-radius-m);font:var(--tui-typography-body-m);font-size:.5625rem;margin:.1875rem 0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m]{--t-block-size: calc(var(--tui-height-m) - .75rem);--t-pad: .375rem 1rem;gap:.5rem .75rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-height=spacious]{--t-pad: 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m][data-height=compact]{--t-block-size: calc(var(--tui-height-m) - .5rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-s);gap:.0625rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-ui-xs)}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiAvatar]{--t-size: 2rem;--t-radius: var(--tui-radius-m);align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: .5rem 1rem;--t-radius: var(--tui-radius-l);gap:.5rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l][data-height=spacious]{--t-pad: 1.25rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l][data-height=compact]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[data-size=l] [tuiAvatar]{--t-size: 2.5rem;font:var(--tui-typography-body-m);font-weight:700;align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions]~*{opacity:0}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] a,[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover [tuiCellActions] label{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.125rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellStretch]{inline-size:100%;margin-inline:-1rem}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]{display:grid;grid-auto-flow:column;grid-auto-columns:fit-content(100%);grid-template-columns:auto 1fr}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]:has(>[tuiTitle]:first-child){grid-template-columns:1fr}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]>*{grid-row:1}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiAccessories]{grid-row:2}[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiTitle],[tuiCell]:where(*[data-tui-version=\"5.19.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiSubtitle]{display:grid}@media(hover:hover)and (pointer:fine){a[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]),button[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]),label[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:disabled,[data-state=disabled]){background:var(--tui-background-neutral-1);cursor:pointer}label[tuiCell]:where(*[data-tui-version=\"5.19.0\"]):hover:not(:has(input:disabled)){background:var(--tui-background-neutral-1);cursor:pointer}}\n"] }]
18
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-cell-${TUI_VERSION}`, styles: ["[tuiCell]:where(*[data-tui-version=\"5.20.0\"]){--t-pad: .125rem 1rem;--t-radius: var(--tui-radius-s);transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;text-align:start;box-sizing:content-box;isolation:isolate;color:var(--tui-text-primary);padding:var(--t-pad);min-block-size:var(--t-block-size);border-radius:var(--t-radius)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(button,label):not(:disabled):active{background:var(--tui-background-neutral-1)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):disabled,[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-state=disabled]{opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):disabled>*:not([tuiTooltip]),[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-state=disabled]>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(label):has(input:disabled){opacity:initial;pointer-events:none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):is(label):has(input:disabled)>*:not([tuiTooltip]){opacity:var(--tui-disabled-opacity)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiAccessories]{position:relative;display:flex;max-block-size:var(--t-block-size);align-items:center;align-self:stretch;margin-inline-start:auto}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions]{position:absolute;z-index:1;inset-inline-end:0;padding-inline-end:inherit;--t-group-mask: none;--t-group-mask-end: none;--t-group-mask-start: none}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions]~*{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] a{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);opacity:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] button:focus-visible,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiCellActions][tuiCellActions] a:focus-visible{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiSubtitle]{display:flex;align-items:center;gap:.25rem;color:var(--tui-text-secondary)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]{flex:3 7 30%;align-items:normal;text-align:start;gap:.25rem .5rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]{flex-direction:row;justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:first-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:3 7 30%;max-inline-size:max-content;white-space:nowrap}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]>[tuiFade]:last-child,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]>[tuiFade]:last-child{flex:7 3 70%}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle] [tuiTitle]~[tuiSubtitle]{justify-content:space-between}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]~[tuiTitle]{flex:7 3 70%;max-inline-size:max-content;margin-inline-start:auto;text-align:end;align-items:flex-end}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) [tuiTitle]~[tuiTitle][tuiFade]{align-items:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]) tui-badge-notification[data-size=xs]{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:.375rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-block-size: calc(var(--tui-height-s) - .125rem);--t-pad: .1875rem 1rem;gap:.5rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-height=spacious]{--t-pad: .4375rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s][data-height=compact]{--t-block-size: calc(var(--tui-height-s) - .25rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiTitle]{max-block-size:100%;font:var(--tui-typography-ui-s);gap:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-ui-2xs)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiAvatar]{--t-size: 1.5rem;--t-radius: var(--tui-radius-m);font:var(--tui-typography-body-m);font-size:.5625rem;margin:.1875rem 0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m]{--t-block-size: calc(var(--tui-height-m) - .75rem);--t-pad: .375rem 1rem;gap:.5rem .75rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-height=spacious]{--t-pad: 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m][data-height=compact]{--t-block-size: calc(var(--tui-height-m) - .5rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-s);gap:.0625rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-ui-xs)}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiAvatar]{--t-size: 2rem;--t-radius: var(--tui-radius-m);align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: .5rem 1rem;--t-radius: var(--tui-radius-l);gap:.5rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l][data-height=spacious]{--t-pad: 1.25rem 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l][data-height=compact]{--t-block-size: calc(var(--tui-height-l) - 1rem);--t-pad: 0 1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[data-size=l] [tuiAvatar]{--t-size: 2.5rem;font:var(--tui-typography-body-m);font-weight:700;align-self:flex-start}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions]~*{opacity:0}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] button,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] a,[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover [tuiCellActions] label{opacity:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.125rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellStretch]{inline-size:100%;margin-inline:-1rem}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]{display:grid;grid-auto-flow:column;grid-auto-columns:fit-content(100%);grid-template-columns:auto 1fr}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]:has(>[tuiTitle]:first-child){grid-template-columns:1fr}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]>*{grid-row:1}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiAccessories]{grid-row:2}[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiTitle],[tuiCell]:where(*[data-tui-version=\"5.20.0\"])[tuiCellResponsive]._rearranged [tuiTitle] [tuiSubtitle]{display:grid}@media(hover:hover)and (pointer:fine){a[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]),button[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]),label[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:disabled,[data-state=disabled]){background:var(--tui-background-neutral-1);cursor:pointer}label[tuiCell]:where(*[data-tui-version=\"5.20.0\"]):hover:not(:has(input:disabled)){background:var(--tui-background-neutral-1);cursor:pointer}}\n"] }]
19
19
  }] });
20
20
  class TuiCell {
21
21
  constructor() {
@@ -25,7 +25,7 @@ class TuiCell {
25
25
  this.height = input(this.options.height, { alias: 'tuiCellHeight' });
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCell, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
28
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiCell, isStandalone: true, selector: "[tuiCell]:not(ng-template)", inputs: { size: { classPropertyName: "size", publicName: "tuiCell", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "tuiCellHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.19.0", "tuiCell": "" }, properties: { "attr.data-height": "height()", "attr.data-size": "size() || options.size || \"l\"" } }, providers: [tuiButtonOptionsProvider({ size: 's' })], ngImport: i0 }); }
28
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiCell, isStandalone: true, selector: "[tuiCell]:not(ng-template)", inputs: { size: { classPropertyName: "size", publicName: "tuiCell", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "tuiCellHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.20.0", "tuiCell": "" }, properties: { "attr.data-height": "height()", "attr.data-size": "size() || options.size || \"l\"" } }, providers: [tuiButtonOptionsProvider({ size: 's' })], ngImport: i0 }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCell, decorators: [{
31
31
  type: Directive,
@@ -22,11 +22,11 @@ class TuiCheckbox extends TuiRadioComponent {
22
22
  this.indeterminate = tuiIconEnd(computed(() => this.options.icons.indeterminate(this.size())));
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiCheckbox, isStandalone: true, selector: "input[type=\"checkbox\"][tuiCheckbox]", providers: [tuiProvide(TUI_RADIO_OPTIONS, TUI_CHECKBOX_OPTIONS)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiIcons }], ngImport: i0, template: '', isInline: true, styles: ["[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]){--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;block-size:100%;inline-size:100%;font-size:1rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');transform:scale(0);transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):after{display:none}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):checked:before,[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-start);mask-image:var(--t-icon-start);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-end);mask-image:var(--t-icon-end)}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:before{font-size:.875rem}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):invalid:not([data-mode]),[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiCheckbox, isStandalone: true, selector: "input[type=\"checkbox\"][tuiCheckbox]", providers: [tuiProvide(TUI_RADIO_OPTIONS, TUI_CHECKBOX_OPTIONS)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiIcons }], ngImport: i0, template: '', isInline: true, styles: ["[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]){--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;block-size:100%;inline-size:100%;font-size:1rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');transform:scale(0);transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):after{display:none}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):checked:before,[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-start);mask-image:var(--t-icon-start);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-end);mask-image:var(--t-icon-end)}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:before{font-size:.875rem}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):invalid:not([data-mode]),[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCheckbox, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'input[type="checkbox"][tuiCheckbox]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiProvide(TUI_RADIO_OPTIONS, TUI_CHECKBOX_OPTIONS)], hostDirectives: [TuiIcons], styles: ["[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]){--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):before{position:absolute;block-size:100%;inline-size:100%;font-size:1rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');transform:scale(0);transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):after{display:none}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):checked:before,[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-start);mask-image:var(--t-icon-start);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-end);mask-image:var(--t-icon-end)}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-size=s]:before{font-size:.875rem}[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"]):invalid:not([data-mode]),[tuiCheckbox]:where(*[data-tui-version=\"5.19.0\"])[data-mode~=invalid]{color:#fff}\n"] }]
29
+ args: [{ selector: 'input[type="checkbox"][tuiCheckbox]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiProvide(TUI_RADIO_OPTIONS, TUI_CHECKBOX_OPTIONS)], hostDirectives: [TuiIcons], styles: ["[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]){--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):before{position:absolute;block-size:100%;inline-size:100%;font-size:1rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');transform:scale(0);transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):after{display:none}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):checked:before,[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-start);mask-image:var(--t-icon-start);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):indeterminate:before{-webkit-mask-image:var(--t-icon-end);mask-image:var(--t-icon-end)}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-size=s]:before{font-size:.875rem}[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"]):invalid:not([data-mode]),[tuiCheckbox]:where(*[data-tui-version=\"5.20.0\"])[data-mode~=invalid]{color:#fff}\n"] }]
30
30
  }] });
31
31
 
32
32
  /**
@@ -146,7 +146,7 @@ class TuiDataListComponent {
146
146
  return Array.from(this.el.querySelectorAll('[tuiOption]:not(.t-empty)'));
147
147
  }
148
148
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.19.0", "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.tab": "handleFocusLossIfNecessary()", "mousedown.prevent": "(0)", "mouseleave": "handleFocusLossIfNecessary($event.target)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()" }, properties: { "attr.data-size": "size()", "attr.role": "role" } }, providers: [
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.20.0", "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.tab": "handleFocusLossIfNecessary()", "mousedown.prevent": "(0)", "mouseleave": "handleFocusLossIfNecessary($event.target)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()" }, properties: { "attr.data-size": "size()", "attr.role": "role" } }, providers: [
150
150
  tuiCellOptionsProvider(() => ({ size: inject(TuiDataListComponent).size() })),
151
151
  tuiAsAuxiliary(TuiDataListComponent),
152
152
  {
@@ -154,7 +154,7 @@ class TuiDataListComponent {
154
154
  useFactory: () => inject(TuiWithOptionContent, { optional: true })?.content ??
155
155
  inject(TUI_OPTION_CONTENT, { skipSelf: true, optional: true }),
156
156
  },
157
- ], queries: [{ propertyName: "optionsQuery", predicate: i0.forwardRef(() => TuiOptionWithValue), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n@if (empty()) {\n <!-- tuiOption selector purely for cosmetics, do not import -->\n <span\n tuiCell\n tuiOption\n class=\"t-empty\"\n >\n <ng-container *polymorpheusOutlet=\"emptyContent() || fallback() as text\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-data-list:where(*[data-tui-version=\"5.19.0\"]){display:flex;flex-direction:column;padding:.25rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"]):focus-within [tuiOption]._with-dropdown:not(:focus){background:transparent}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]{min-block-size:0;font:var(--tui-typography-ui-s);padding:.375rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]:before,tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]:after{font-size:1rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiOption]{min-block-size:2.25rem;font:var(--tui-typography-ui-s);padding:.5rem .375rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l]{gap:.125rem;padding:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l] [tuiOption]{font:var(--tui-typography-ui-m);padding-inline:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l] hr{block-size:1rem;border-inline-width:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);box-sizing:border-box;border-radius:var(--tui-radius-s);outline:none!important;cursor:pointer;word-break:break-word;text-transform:inherit}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}@media(hover:hover)and (pointer:fine){tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:hover:not(:disabled){background:var(--tui-background-neutral-1)}}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:active:not(:disabled),tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:focus-within,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]._with-dropdown{background:var(--tui-background-neutral-1)}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:after{margin-inline-start:auto}tui-data-list:where(*[data-tui-version=\"5.19.0\"])>.t-empty{pointer-events:none;color:var(--tui-text-tertiary)}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr{position:relative;margin:0;block-size:.75rem;border:.375rem solid transparent;border-block:0}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr+hr,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:first-child,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:last-child{display:none}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:before{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);content:\"\";block-size:1px;inline-size:100%;background:var(--tui-border-normal)}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){position:relative;display:flex;font-weight:700!important;gap:inherit;color:var(--tui-text-primary);flex-direction:column}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-body-s)}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.1875rem .375rem}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-ui-m)}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.375rem}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-ui-l)}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.5rem}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):empty:before,tui-opt-group:where(*[data-tui-version=\"5.19.0\"])[data-label=\"\"]:before{display:none}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{content:attr(data-label);word-break:break-word}tui-sheet-dialog tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{font:var(--tui-typography-heading-h6);padding:.5rem 0!important}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiCell, selector: "[tuiCell]:not(ng-template)", inputs: ["tuiCell", "tuiCellHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
157
+ ], queries: [{ propertyName: "optionsQuery", predicate: i0.forwardRef(() => TuiOptionWithValue), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n@if (empty()) {\n <!-- tuiOption selector purely for cosmetics, do not import -->\n <span\n tuiCell\n tuiOption\n class=\"t-empty\"\n >\n <ng-container *polymorpheusOutlet=\"emptyContent() || fallback() as text\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-data-list:where(*[data-tui-version=\"5.20.0\"]){display:flex;flex-direction:column;padding:.25rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"]):focus-within [tuiOption]._with-dropdown:not(:focus){background:transparent}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]{min-block-size:0;font:var(--tui-typography-ui-s);padding:.375rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]:before,tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]:after{font-size:1rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiOption]{min-block-size:2.25rem;font:var(--tui-typography-ui-s);padding:.5rem .375rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l]{gap:.125rem;padding:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l] [tuiOption]{font:var(--tui-typography-ui-m);padding-inline:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l] hr{block-size:1rem;border-inline-width:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);box-sizing:border-box;border-radius:var(--tui-radius-s);outline:none!important;cursor:pointer;word-break:break-word;text-transform:inherit}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}@media(hover:hover)and (pointer:fine){tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:hover:not(:disabled){background:var(--tui-background-neutral-1)}}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:active:not(:disabled),tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:focus-within,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]._with-dropdown{background:var(--tui-background-neutral-1)}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:after{margin-inline-start:auto}tui-data-list:where(*[data-tui-version=\"5.20.0\"])>.t-empty{pointer-events:none;color:var(--tui-text-tertiary)}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr{position:relative;margin:0;block-size:.75rem;border:.375rem solid transparent;border-block:0}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr+hr,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:first-child,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:last-child{display:none}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:before{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);content:\"\";block-size:1px;inline-size:100%;background:var(--tui-border-normal)}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){position:relative;display:flex;font-weight:700!important;gap:inherit;color:var(--tui-text-primary);flex-direction:column}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-body-s)}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.1875rem .375rem}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-ui-m)}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.375rem}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-ui-l)}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.5rem}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):empty:before,tui-opt-group:where(*[data-tui-version=\"5.20.0\"])[data-label=\"\"]:before{display:none}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{content:attr(data-label);word-break:break-word}tui-sheet-dialog tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{font:var(--tui-typography-heading-h6);padding:.5rem 0!important}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiCell, selector: "[tuiCell]:not(ng-template)", inputs: ["tuiCell", "tuiCellHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
158
  }
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiDataListComponent, decorators: [{
160
160
  type: Component,
@@ -179,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
179
179
  '(mousedown.prevent)': '(0)',
180
180
  '(mouseleave)': 'handleFocusLossIfNecessary($event.target)',
181
181
  '(wheel.zoneless.passive)': 'handleFocusLossIfNecessary()',
182
- }, template: "<ng-content />\n@if (empty()) {\n <!-- tuiOption selector purely for cosmetics, do not import -->\n <span\n tuiCell\n tuiOption\n class=\"t-empty\"\n >\n <ng-container *polymorpheusOutlet=\"emptyContent() || fallback() as text\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-data-list:where(*[data-tui-version=\"5.19.0\"]){display:flex;flex-direction:column;padding:.25rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"]):focus-within [tuiOption]._with-dropdown:not(:focus){background:transparent}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]{min-block-size:0;font:var(--tui-typography-ui-s);padding:.375rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]:before,tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=s] [tuiOption]:after{font-size:1rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=m] [tuiOption]{min-block-size:2.25rem;font:var(--tui-typography-ui-s);padding:.5rem .375rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l]{gap:.125rem;padding:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l] [tuiOption]{font:var(--tui-typography-ui-m);padding-inline:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"])[data-size=l] hr{block-size:1rem;border-inline-width:.5rem}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);box-sizing:border-box;border-radius:var(--tui-radius-s);outline:none!important;cursor:pointer;word-break:break-word;text-transform:inherit}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}@media(hover:hover)and (pointer:fine){tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:hover:not(:disabled){background:var(--tui-background-neutral-1)}}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:active:not(:disabled),tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:focus-within,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]._with-dropdown{background:var(--tui-background-neutral-1)}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) [tuiOption]:after{margin-inline-start:auto}tui-data-list:where(*[data-tui-version=\"5.19.0\"])>.t-empty{pointer-events:none;color:var(--tui-text-tertiary)}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr{position:relative;margin:0;block-size:.75rem;border:.375rem solid transparent;border-block:0}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr+hr,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:first-child,tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:last-child{display:none}tui-data-list:where(*[data-tui-version=\"5.19.0\"]) hr:before{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);content:\"\";block-size:1px;inline-size:100%;background:var(--tui-border-normal)}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){position:relative;display:flex;font-weight:700!important;gap:inherit;color:var(--tui-text-primary);flex-direction:column}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-body-s)}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.1875rem .375rem}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-ui-m)}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.375rem}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]){font:var(--tui-typography-ui-l)}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{padding:.5rem}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):empty:before,tui-opt-group:where(*[data-tui-version=\"5.19.0\"])[data-label=\"\"]:before{display:none}tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{content:attr(data-label);word-break:break-word}tui-sheet-dialog tui-opt-group:where(*[data-tui-version=\"5.19.0\"]):before{font:var(--tui-typography-heading-h6);padding:.5rem 0!important}\n"] }]
182
+ }, template: "<ng-content />\n@if (empty()) {\n <!-- tuiOption selector purely for cosmetics, do not import -->\n <span\n tuiCell\n tuiOption\n class=\"t-empty\"\n >\n <ng-container *polymorpheusOutlet=\"emptyContent() || fallback() as text\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-data-list:where(*[data-tui-version=\"5.20.0\"]){display:flex;flex-direction:column;padding:.25rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"]):focus-within [tuiOption]._with-dropdown:not(:focus){background:transparent}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]{min-block-size:0;font:var(--tui-typography-ui-s);padding:.375rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]:before,tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=s] [tuiOption]:after{font-size:1rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=m] [tuiOption]{min-block-size:2.25rem;font:var(--tui-typography-ui-s);padding:.5rem .375rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l]{gap:.125rem;padding:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l] [tuiOption]{font:var(--tui-typography-ui-m);padding-inline:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"])[data-size=l] hr{block-size:1rem;border-inline-width:.5rem}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);box-sizing:border-box;border-radius:var(--tui-radius-s);outline:none!important;cursor:pointer;word-break:break-word;text-transform:inherit}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}@media(hover:hover)and (pointer:fine){tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:hover:not(:disabled){background:var(--tui-background-neutral-1)}}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:active:not(:disabled),tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:focus-within,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]._with-dropdown{background:var(--tui-background-neutral-1)}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) [tuiOption]:after{margin-inline-start:auto}tui-data-list:where(*[data-tui-version=\"5.20.0\"])>.t-empty{pointer-events:none;color:var(--tui-text-tertiary)}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr{position:relative;margin:0;block-size:.75rem;border:.375rem solid transparent;border-block:0}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr+hr,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:first-child,tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:last-child{display:none}tui-data-list:where(*[data-tui-version=\"5.20.0\"]) hr:before{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);content:\"\";block-size:1px;inline-size:100%;background:var(--tui-border-normal)}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){position:relative;display:flex;font-weight:700!important;gap:inherit;color:var(--tui-text-primary);flex-direction:column}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-body-s)}tui-data-list[data-size=s] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.1875rem .375rem}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-ui-m)}tui-data-list[data-size=m] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.375rem}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]){font:var(--tui-typography-ui-l)}tui-data-list[data-size=l] tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{padding:.5rem}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):empty:before,tui-opt-group:where(*[data-tui-version=\"5.20.0\"])[data-label=\"\"]:before{display:none}tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{content:attr(data-label);word-break:break-word}tui-sheet-dialog tui-opt-group:where(*[data-tui-version=\"5.20.0\"]):before{font:var(--tui-typography-heading-h6);padding:.5rem 0!important}\n"] }]
183
183
  }] });
184
184
 
185
185
  class TuiOptGroup {
@@ -187,7 +187,7 @@ class TuiOptGroup {
187
187
  this.label = input();
188
188
  }
189
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiOptGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
190
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiOptGroup, isStandalone: true, selector: "tui-opt-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.19.0", "role": "group" }, properties: { "attr.data-label": "label() || \"\"" } }, ngImport: i0 }); }
190
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiOptGroup, isStandalone: true, selector: "tui-opt-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.20.0", "role": "group" }, properties: { "attr.data-label": "label() || \"\"" } }, ngImport: i0 }); }
191
191
  }
192
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiOptGroup, decorators: [{
193
193
  type: Directive,
@@ -9,7 +9,7 @@ import { toSignal } from '@angular/core/rxjs-interop';
9
9
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';
10
10
  import * as i1 from '@taiga-ui/cdk/directives/id';
11
11
  import { TuiId } from '@taiga-ui/cdk/directives/id';
12
- import { tuiDirectiveBinding, tuiProvide } from '@taiga-ui/cdk/utils/di';
12
+ import { tuiDirectiveBinding, tuiProvide, tuiInjectFormField } from '@taiga-ui/cdk/utils/di';
13
13
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
14
14
  import { BehaviorSubject, filter, distinctUntilChanged, switchMap, startWith, map } from 'rxjs';
15
15
 
@@ -20,11 +20,11 @@ class TuiErrorComponent {
20
20
  this.error = input(null);
21
21
  }
22
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiErrorComponent, isStandalone: true, selector: "tui-error", inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class._error": "content()" } }, ngImport: i0, template: "@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-message-text\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n", styles: [":host{transition-property:grid-template-rows;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);display:grid;font:var(--tui-typography-body-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr;transition-duration:var(--tui-duration)}.t-message-text{white-space:pre-line;grid-area:1 / 1 / span 2}.t-message-text.tui-enter{animation-name:tuiFade}.t-message-text.tui-leave{animation-name:tuiFade;animation-duration:calc(var(--tui-duration) / 2)}.t-message-text:before{content:\"\";line-height:calc(24 / 14);vertical-align:bottom}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiErrorComponent, isStandalone: true, selector: "tui-error", inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class._error": "content()" } }, ngImport: i0, template: "@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-content\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n", styles: [":host{transition-property:grid-template-rows;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);display:grid;font:var(--tui-typography-body-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr;transition-duration:var(--tui-duration)}.t-content{white-space:pre-line;grid-area:1 / 1 / span 2;margin-block-end:-.25rem}.t-content.tui-enter{animation-name:tuiFade}.t-content.tui-leave{animation-name:tuiFade;animation-duration:calc(var(--tui-duration) / 2)}.t-content:before{content:\"\";line-height:1.68125rem;vertical-align:text-bottom}.t-content:after{content:\"\";vertical-align:text-top}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiErrorComponent, decorators: [{
26
26
  type: Component,
27
- args: [{ selector: 'tui-error', imports: [PolymorpheusOutlet, TuiAnimated], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class._error]': 'content()' }, template: "@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-message-text\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n", styles: [":host{transition-property:grid-template-rows;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);display:grid;font:var(--tui-typography-body-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr;transition-duration:var(--tui-duration)}.t-message-text{white-space:pre-line;grid-area:1 / 1 / span 2}.t-message-text.tui-enter{animation-name:tuiFade}.t-message-text.tui-leave{animation-name:tuiFade;animation-duration:calc(var(--tui-duration) / 2)}.t-message-text:before{content:\"\";line-height:calc(24 / 14);vertical-align:bottom}\n"] }]
27
+ args: [{ selector: 'tui-error', imports: [PolymorpheusOutlet, TuiAnimated], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class._error]': 'content()' }, template: "@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-content\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n", styles: [":host{transition-property:grid-template-rows;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);display:grid;font:var(--tui-typography-body-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr;transition-duration:var(--tui-duration)}.t-content{white-space:pre-line;grid-area:1 / 1 / span 2;margin-block-end:-.25rem}.t-content.tui-enter{animation-name:tuiFade}.t-content.tui-leave{animation-name:tuiFade;animation-duration:calc(var(--tui-duration) / 2)}.t-content:before{content:\"\";line-height:1.68125rem;vertical-align:text-bottom}.t-content:after{content:\"\";vertical-align:text-top}\n"] }]
28
28
  }] });
29
29
 
30
30
  class AbstractTuiErrorDirective {
@@ -101,9 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
101
101
  class TuiErrorField extends AbstractTuiErrorDirective {
102
102
  constructor() {
103
103
  super(...arguments);
104
- // TODO: use inject(FORM_FIELD) from `@angular/forms/signals` after update to Angular >= 21
105
- // @ts-expect-error
106
- this.field = inject(NgControl, { self: true }).field;
104
+ this.field = tuiInjectFormField({ self: true });
107
105
  this.errors = input([]);
108
106
  this.touched = input(false);
109
107
  this.value = model(null);
@@ -137,7 +135,7 @@ class TuiErrorField extends AbstractTuiErrorDirective {
137
135
  */
138
136
  // @ts-ignore
139
137
  const validatorField = validator.control.field?.();
140
- const field = this.field?.();
138
+ const field = this.field();
141
139
  if (field && validatorField === field) {
142
140
  validator.id = this.el.id;
143
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-error.mjs","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/error.directive.ts","../../../projects/core/components/error/error.pipe.ts","../../../projects/core/components/error/error.ts","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-error',\n imports: [PolymorpheusOutlet, TuiAnimated],\n templateUrl: './error.template.html',\n styleUrl: './error.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[class._error]': 'content()'},\n})\nexport class TuiErrorComponent {\n protected readonly default = inject(TUI_DEFAULT_ERROR_MESSAGE);\n\n protected readonly content = computed((error = this.error()) =>\n tuiIsString(error) ? new TuiValidationError(error) : error,\n );\n\n public readonly error = input<TuiValidationError | string | null>(null);\n}\n","@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-message-text\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n","import {\n computed,\n Directive,\n inject,\n input,\n isSignal,\n model,\n type Signal,\n TemplateRef,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n type ValidationErrors,\n type Validator,\n} from '@angular/forms';\nimport {\n type TuiFormValueControl,\n type TuiSignalValidationError,\n TuiValidationError,\n} from '@taiga-ui/cdk/classes';\nimport {TuiId} from '@taiga-ui/cdk/directives/id';\nimport {type TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiDirectiveBinding, tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/core/tokens';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {TuiErrorComponent} from './error.component';\n\n@Directive({\n hostDirectives: [TuiId],\n host: {'aria-live': 'polite'},\n})\nexport abstract class AbstractTuiErrorDirective {\n protected abstract readonly error: Signal<TuiValidationError | null>;\n protected readonly el = tuiInjectElement();\n protected readonly content = inject(TUI_VALIDATION_ERRORS);\n\n public readonly order = input<readonly string[]>([]);\n\n protected readonly $ = tuiDirectiveBinding(\n TuiErrorComponent,\n 'error',\n computed(() => this.error()),\n {self: true, optional: true},\n );\n\n protected getError(\n context: unknown,\n content?: PolymorpheusContent | Signal<PolymorpheusContent>,\n ): TuiValidationError {\n context = isSignal(context) ? context() : context;\n\n if (context instanceof TuiValidationError) {\n return context;\n }\n\n if (content === undefined && isContent(context)) {\n return getError(context);\n }\n\n if (isSignal(content)) {\n return getError(content(), context);\n }\n\n if (content instanceof Function) {\n const message = content(context);\n\n return getError(isSignal(message) ? message() : message, context);\n }\n\n return getError(content, context);\n }\n}\n\n@Directive({\n selector:\n 'tui-error[ngModel], tui-error[formControlName], tui-error[formControl], tui-error[formGroup], tui-error[formGroupName], tui-error[formArrayName], tui-error[formArray]',\n providers: [\n tuiProvide(NG_VALUE_ACCESSOR, TuiErrorDirective, true),\n tuiProvide(NG_VALIDATORS, TuiErrorDirective, true),\n ],\n host: {'(document:tui-validator.zoneless)': 'onValidator($event.detail)'},\n})\nexport class TuiErrorDirective\n extends AbstractTuiErrorDirective\n implements ControlValueAccessor, Validator\n{\n private readonly control = new BehaviorSubject<AbstractControl | null>(null);\n private readonly errors = toSignal(\n this.control.pipe(\n filter(Boolean),\n distinctUntilChanged(),\n switchMap((control) =>\n control.events.pipe(\n startWith(null),\n map(() => !control.disabled && control.touched && control.errors),\n ),\n ),\n ),\n );\n\n private readonly key = computed(\n (errors = this.errors() || {}) =>\n this.order().find((id) => errors[id]) || Object.keys(errors)[0] || '',\n );\n\n public readonly error = computed(\n (errors = this.errors() || null) =>\n errors && this.getError(errors[this.key()], this.content[this.key()]),\n );\n\n public registerOnChange(): void {}\n\n public registerOnTouched(): void {}\n\n public writeValue(): void {}\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.control.next(control);\n\n return null;\n }\n\n protected onValidator(validator: TuiNativeValidator): void {\n if (this.control.value && validator.control === this.control.value) {\n validator.id = this.el.id;\n }\n }\n}\n\n@Directive({\n selector: 'tui-error[formField]',\n host: {'(document:tui-validator.zoneless)': 'onValidator($event.detail)'},\n})\nexport class TuiErrorField\n extends AbstractTuiErrorDirective\n implements TuiFormValueControl<unknown>\n{\n // TODO: use inject(FORM_FIELD) from `@angular/forms/signals` after update to Angular >= 21\n // @ts-expect-error\n private readonly field = inject(NgControl, {self: true}).field;\n\n public readonly errors = input<readonly TuiSignalValidationError[]>([]);\n public readonly touched = input(false);\n public readonly value = model<unknown>(null);\n\n public readonly error = computed((errors = this.errors()) => {\n if (!this.touched()) {\n return null;\n }\n\n const kind = this.order().find((id) => errors.find(({kind}) => kind === id));\n const error = kind ? errors.find((x) => x.kind === kind) : errors[0];\n\n return error\n ? this.getError(error, error.message ?? this.content[error.kind])\n : null;\n });\n\n protected onValidator(validator: TuiNativeValidator): void {\n /**\n * Signal forms have no `AbstractControl`: `inject(NgControl)` returns Angular's internal\n * `InteropNgControl`, and every `[formField]` builds ITS OWN INSTANCE. So two bindings of the\n * same field hold two different controls, and comparing them by identity is meaningless:\n *\n * ```html\n * <input [formField]=\"form.name\" />\n * <tui-error [formField]=\"form.name\" />\n * ```\n *\n * What they do share is the `FieldState` behind them, but the only way to it is the\n * undocumented `field` property — hence the index access.\n *\n * TODO: read the state through the public `FORM_FIELD` token once Taiga UI drops Angular < 22\n * https://angular.dev/api/forms/signals/FORM_FIELD\n */\n // @ts-ignore\n const validatorField = validator.control.field?.();\n const field = this.field?.();\n\n if (field && validatorField === field) {\n validator.id = this.el.id;\n }\n }\n}\n\nfunction getError(content: unknown = '', context?: any): TuiValidationError {\n return new TuiValidationError(content as PolymorpheusContent, context);\n}\n\nfunction isContent(value: unknown): value is PolymorpheusContent {\n return (\n tuiIsString(value) ||\n value instanceof TemplateRef ||\n value instanceof PolymorpheusTemplate ||\n value instanceof PolymorpheusComponent\n );\n}\n","import {inject, Pipe, type PipeTransform, untracked} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiErrorDirective} from './error.directive';\n\n@Pipe({\n name: 'tuiError',\n pure: false,\n})\nexport class TuiErrorPipe implements PipeTransform {\n private readonly control = inject(NgControl);\n private readonly directive = new TuiErrorDirective();\n\n public transform(order: readonly string[]): PolymorpheusContent {\n untracked(() => {\n this.directive.validate(this.control.control!);\n tuiSetSignal(this.directive.order, order);\n });\n\n const error = this.directive.error();\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\n }\n}\n","import {TuiErrorComponent} from './error.component';\nimport {TuiErrorDirective, TuiErrorField} from './error.directive';\nimport {TuiErrorPipe} from './error.pipe';\n\nexport const TuiError = [\n TuiErrorComponent,\n TuiErrorDirective,\n TuiErrorField,\n TuiErrorPipe,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-error.mjs","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/error.directive.ts","../../../projects/core/components/error/error.pipe.ts","../../../projects/core/components/error/error.ts","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-error',\n imports: [PolymorpheusOutlet, TuiAnimated],\n templateUrl: './error.template.html',\n styleUrl: './error.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[class._error]': 'content()'},\n})\nexport class TuiErrorComponent {\n protected readonly default = inject(TUI_DEFAULT_ERROR_MESSAGE);\n\n protected readonly content = computed((error = this.error()) =>\n tuiIsString(error) ? new TuiValidationError(error) : error,\n );\n\n public readonly error = input<TuiValidationError | string | null>(null);\n}\n","@if (content(); as error) {\n <span\n tuiAnimated\n class=\"t-content\"\n >\n <span\n *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n}\n","import {\n computed,\n Directive,\n inject,\n input,\n isSignal,\n model,\n type Signal,\n TemplateRef,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n type ValidationErrors,\n type Validator,\n} from '@angular/forms';\nimport {\n type TuiFormValueControl,\n type TuiSignalValidationError,\n TuiValidationError,\n} from '@taiga-ui/cdk/classes';\nimport {TuiId} from '@taiga-ui/cdk/directives/id';\nimport {type TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {\n tuiDirectiveBinding,\n tuiInjectFormField,\n tuiProvide,\n} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/core/tokens';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {TuiErrorComponent} from './error.component';\n\n@Directive({\n hostDirectives: [TuiId],\n host: {'aria-live': 'polite'},\n})\nexport abstract class AbstractTuiErrorDirective {\n protected abstract readonly error: Signal<TuiValidationError | null>;\n protected readonly el = tuiInjectElement();\n protected readonly content = inject(TUI_VALIDATION_ERRORS);\n\n public readonly order = input<readonly string[]>([]);\n\n protected readonly $ = tuiDirectiveBinding(\n TuiErrorComponent,\n 'error',\n computed(() => this.error()),\n {self: true, optional: true},\n );\n\n protected getError(\n context: unknown,\n content?: PolymorpheusContent | Signal<PolymorpheusContent>,\n ): TuiValidationError {\n context = isSignal(context) ? context() : context;\n\n if (context instanceof TuiValidationError) {\n return context;\n }\n\n if (content === undefined && isContent(context)) {\n return getError(context);\n }\n\n if (isSignal(content)) {\n return getError(content(), context);\n }\n\n if (content instanceof Function) {\n const message = content(context);\n\n return getError(isSignal(message) ? message() : message, context);\n }\n\n return getError(content, context);\n }\n}\n\n@Directive({\n selector:\n 'tui-error[ngModel], tui-error[formControlName], tui-error[formControl], tui-error[formGroup], tui-error[formGroupName], tui-error[formArrayName], tui-error[formArray]',\n providers: [\n tuiProvide(NG_VALUE_ACCESSOR, TuiErrorDirective, true),\n tuiProvide(NG_VALIDATORS, TuiErrorDirective, true),\n ],\n host: {'(document:tui-validator.zoneless)': 'onValidator($event.detail)'},\n})\nexport class TuiErrorDirective\n extends AbstractTuiErrorDirective\n implements ControlValueAccessor, Validator\n{\n private readonly control = new BehaviorSubject<AbstractControl | null>(null);\n private readonly errors = toSignal(\n this.control.pipe(\n filter(Boolean),\n distinctUntilChanged(),\n switchMap((control) =>\n control.events.pipe(\n startWith(null),\n map(() => !control.disabled && control.touched && control.errors),\n ),\n ),\n ),\n );\n\n private readonly key = computed(\n (errors = this.errors() || {}) =>\n this.order().find((id) => errors[id]) || Object.keys(errors)[0] || '',\n );\n\n public readonly error = computed(\n (errors = this.errors() || null) =>\n errors && this.getError(errors[this.key()], this.content[this.key()]),\n );\n\n public registerOnChange(): void {}\n\n public registerOnTouched(): void {}\n\n public writeValue(): void {}\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.control.next(control);\n\n return null;\n }\n\n protected onValidator(validator: TuiNativeValidator): void {\n if (this.control.value && validator.control === this.control.value) {\n validator.id = this.el.id;\n }\n }\n}\n\n@Directive({\n selector: 'tui-error[formField]',\n host: {'(document:tui-validator.zoneless)': 'onValidator($event.detail)'},\n})\nexport class TuiErrorField\n extends AbstractTuiErrorDirective\n implements TuiFormValueControl<unknown>\n{\n private readonly field = tuiInjectFormField({self: true});\n\n public readonly errors = input<readonly TuiSignalValidationError[]>([]);\n public readonly touched = input(false);\n public readonly value = model<unknown>(null);\n\n public readonly error = computed((errors = this.errors()) => {\n if (!this.touched()) {\n return null;\n }\n\n const kind = this.order().find((id) => errors.find(({kind}) => kind === id));\n const error = kind ? errors.find((x) => x.kind === kind) : errors[0];\n\n return error\n ? this.getError(error, error.message ?? this.content[error.kind])\n : null;\n });\n\n protected onValidator(validator: TuiNativeValidator): void {\n /**\n * Signal forms have no `AbstractControl`: `inject(NgControl)` returns Angular's internal\n * `InteropNgControl`, and every `[formField]` builds ITS OWN INSTANCE. So two bindings of the\n * same field hold two different controls, and comparing them by identity is meaningless:\n *\n * ```html\n * <input [formField]=\"form.name\" />\n * <tui-error [formField]=\"form.name\" />\n * ```\n *\n * What they do share is the `FieldState` behind them, but the only way to it is the\n * undocumented `field` property — hence the index access.\n *\n * TODO: read the state through the public `FORM_FIELD` token once Taiga UI drops Angular < 22\n * https://angular.dev/api/forms/signals/FORM_FIELD\n */\n // @ts-ignore\n const validatorField = validator.control.field?.();\n const field = this.field();\n\n if (field && validatorField === field) {\n validator.id = this.el.id;\n }\n }\n}\n\nfunction getError(content: unknown = '', context?: any): TuiValidationError {\n return new TuiValidationError(content as PolymorpheusContent, context);\n}\n\nfunction isContent(value: unknown): value is PolymorpheusContent {\n return (\n tuiIsString(value) ||\n value instanceof TemplateRef ||\n value instanceof PolymorpheusTemplate ||\n value instanceof PolymorpheusComponent\n );\n}\n","import {inject, Pipe, type PipeTransform, untracked} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiErrorDirective} from './error.directive';\n\n@Pipe({\n name: 'tuiError',\n pure: false,\n})\nexport class TuiErrorPipe implements PipeTransform {\n private readonly control = inject(NgControl);\n private readonly directive = new TuiErrorDirective();\n\n public transform(order: readonly string[]): PolymorpheusContent {\n untracked(() => {\n this.directive.validate(this.control.control!);\n tuiSetSignal(this.directive.order, order);\n });\n\n const error = this.directive.error();\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\n }\n}\n","import {TuiErrorComponent} from './error.component';\nimport {TuiErrorDirective, TuiErrorField} from './error.directive';\nimport {TuiErrorPipe} from './error.pipe';\n\nexport const TuiError = [\n TuiErrorComponent,\n TuiErrorDirective,\n TuiErrorField,\n TuiErrorPipe,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ class TuiIcon {
12
12
  this.background = input('');
13
13
  }
14
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiIcon, isStandalone: true, selector: "tui-icon:not([tuiBadge])", inputs: { background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--t-icon-bg": "mask()" } }, hostDirectives: [{ directive: i1.TuiIcons, inputs: ["iconStart", "icon", "iconEnd", "badge"] }], ngImport: i0, template: '', isInline: true, styles: ["tui-icon:where(*[data-tui-version=\"5.19.0\"]){--tui-icon-size: 1em;position:relative;display:inline-flex;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask-image:var(--t-icon-bg);mask-image:var(--t-icon-bg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;zoom:calc(100%*clamp(0px,var(--tui-font-offset) - 10px,1px)/.8px)}@media(hover:hover)and (pointer:fine){tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:after{zoom:1}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]:before{-webkit-mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);-webkit-mask-composite:source-in;mask-composite:intersect}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end][data-icon-start=img]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end][data-icon-start=font]:before{-webkit-mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em)}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]:after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]:before{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]:after{transform:translate(36%,36%);--tui-icon-size: .5715em}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start=font]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end=font]:after{zoom:.667}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: TuiIcon, isStandalone: true, selector: "tui-icon:not([tuiBadge])", inputs: { background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--t-icon-bg": "mask()" } }, hostDirectives: [{ directive: i1.TuiIcons, inputs: ["iconStart", "icon", "iconEnd", "badge"] }], ngImport: i0, template: '', isInline: true, styles: ["tui-icon:where(*[data-tui-version=\"5.20.0\"]){--tui-icon-size: 1em;position:relative;display:inline-flex;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask-image:var(--t-icon-bg);mask-image:var(--t-icon-bg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;zoom:calc(100%*clamp(0px,var(--tui-font-offset) - 10px,1px)/.8px)}@media(hover:hover)and (pointer:fine){tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:after{zoom:1}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]:before{-webkit-mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);-webkit-mask-composite:source-in;mask-composite:intersect}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end][data-icon-start=img]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end][data-icon-start=font]:before{-webkit-mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em)}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]:after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]:before{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]:after{transform:translate(36%,36%);--tui-icon-size: .5715em}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start=font]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end=font]:after{zoom:.667}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiIcon, decorators: [{
18
18
  type: Component,
@@ -21,7 +21,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
21
21
  directive: TuiIcons,
22
22
  inputs: ['iconStart: icon', 'iconEnd: badge'],
23
23
  },
24
- ], host: { '[style.--t-icon-bg]': 'mask()' }, styles: ["tui-icon:where(*[data-tui-version=\"5.19.0\"]){--tui-icon-size: 1em;position:relative;display:inline-flex;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask-image:var(--t-icon-bg);mask-image:var(--t-icon-bg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;zoom:calc(100%*clamp(0px,var(--tui-font-offset) - 10px,1px)/.8px)}@media(hover:hover)and (pointer:fine){tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[tuiIcons]:after{zoom:1}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]:before{-webkit-mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);-webkit-mask-composite:source-in;mask-composite:intersect}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end][data-icon-start=img]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end][data-icon-start=font]:before{-webkit-mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em)}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end]:after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]:before{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start]:after{transform:translate(36%,36%);--tui-icon-size: .5715em}tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-start=font]:before,tui-icon:where(*[data-tui-version=\"5.19.0\"])[data-icon-end=font]:after{zoom:.667}\n"] }]
24
+ ], host: { '[style.--t-icon-bg]': 'mask()' }, styles: ["tui-icon:where(*[data-tui-version=\"5.20.0\"]){--tui-icon-size: 1em;position:relative;display:inline-flex;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask-image:var(--t-icon-bg);mask-image:var(--t-icon-bg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;mask-size:calc(100% + 10 * var(--tui-stroke-width)) 100%;zoom:calc(100%*clamp(0px,var(--tui-font-offset) - 10px,1px)/.8px)}@media(hover:hover)and (pointer:fine){tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[tuiIcons]:after{zoom:1}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]:before{-webkit-mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:var(--t-icon-start),radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);-webkit-mask-composite:source-in;mask-composite:intersect}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end][data-icon-start=img]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end][data-icon-start=font]:before{-webkit-mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em);mask-image:radial-gradient(circle at bottom .1em right .1em,transparent calc(.4em - .5px),#000 .4em)}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end]:after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]:before{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start]:after{transform:translate(36%,36%);--tui-icon-size: .5715em}tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-start=font]:before,tui-icon:where(*[data-tui-version=\"5.20.0\"])[data-icon-end=font]:after{zoom:.667}\n"] }]
25
25
  }] });
26
26
 
27
27
  class TuiIconPipe {
@@ -2,13 +2,14 @@ import { TuiLabel } from '@taiga-ui/core/components/label';
2
2
  import { TuiTextfieldComponent, TUI_TEXTFIELD_OPTIONS, tuiAsTextfieldAccessor, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
3
3
  import { TuiDropdownDirective, TuiDropdownContent } from '@taiga-ui/core/portals/dropdown';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, computed, input, INJECTOR, effect, Directive } from '@angular/core';
5
+ import { computed, inject, input, INJECTOR, effect, Directive } from '@angular/core';
6
6
  import { NgControl } from '@angular/forms';
7
7
  import { TuiControl } from '@taiga-ui/cdk/classes';
8
8
  import * as i2 from '@taiga-ui/cdk/directives/id';
9
9
  import { TuiId } from '@taiga-ui/cdk/directives/id';
10
10
  import * as i1 from '@taiga-ui/cdk/directives/native-validator';
11
11
  import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
12
+ import { tuiInjectFormField } from '@taiga-ui/cdk/utils/di';
12
13
  import { tuiInjectElement, tuiValue } from '@taiga-ui/cdk/utils/dom';
13
14
  import { tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
14
15
  import { tuiAppearance, tuiAppearanceState, tuiAppearanceMode, tuiAppearanceFocus } from '@taiga-ui/core/directives/appearance';
@@ -21,6 +22,8 @@ class TuiInputDirective {
21
22
  * TODO(v6): remove all logic inside constructor
22
23
  */
23
24
  constructor() {
25
+ this.field = tuiInjectFormField({ self: true, optional: true });
26
+ this.computedInvalid = computed(() => this.textfield.invalid() ?? (this.field() ? null : this.invalid()));
24
27
  this.el = tuiInjectElement();
25
28
  this.control = inject(NgControl, { optional: true });
26
29
  this.handlers = inject(TUI_ITEMS_HANDLERS);
@@ -33,7 +36,16 @@ class TuiInputDirective {
33
36
  this.f = tuiAppearanceFocus(computed(() => this.focused() ??
34
37
  this.textfield.tuiAppearanceFocus() ??
35
38
  this.textfield.focused()));
36
- this.readOnly = input(false);
39
+ /**
40
+ * @deprecated use `<input [readonly]="..." />` instead
41
+ * TODO(v6): delete
42
+ */
43
+ this.readOnlyLegacy = input(false, { alias: 'readOnly' });
44
+ /**
45
+ * TODO(v6): delete, it's only for backward compatibility
46
+ */
47
+ this.readOnly = computed(() => this.readonly() || this.readOnlyLegacy());
48
+ this.readonly = input(false);
37
49
  /**
38
50
  * @deprecated use `<tui-textfield [invalid]="..." />` instead
39
51
  * TODO(v6): delete
@@ -51,7 +63,7 @@ class TuiInputDirective {
51
63
  this.state = input(null);
52
64
  this.value = tuiValue(this.el);
53
65
  this.mode = computed(() => {
54
- const invalid = this.textfield.invalid() ?? this.invalid();
66
+ const invalid = this.computedInvalid();
55
67
  if (this.readOnly()) {
56
68
  return 'readonly';
57
69
  }
@@ -61,11 +73,10 @@ class TuiInputDirective {
61
73
  return invalid ? 'invalid' : null;
62
74
  });
63
75
  const injector = inject(INJECTOR);
64
- const invalid = computed(() => this.textfield.invalid() ?? this.invalid());
65
76
  effect(() => {
66
77
  const control = injector.get(TuiControl, null, { self: true });
67
78
  if (control) {
68
- tuiSetSignal(control.pseudoInvalid, invalid());
79
+ tuiSetSignal(control.pseudoInvalid, this.computedInvalid());
69
80
  }
70
81
  });
71
82
  }
@@ -83,7 +94,7 @@ class TuiInputDirective {
83
94
  }
84
95
  }
85
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
86
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputDirective, isStandalone: true, selector: "input[tuiInput]", inputs: { readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiInput": "" }, listeners: { "focusin": "0", "focusout": "0", "input": "0" }, properties: { "attr.role": "dropdown.content() && !el.matches(\"select\") ? \"combobox\" : null", "class._empty": "value() === \"\"", "readOnly": "readOnly()" } }, providers: [tuiAsTextfieldAccessor(TuiInputDirective)], hostDirectives: [{ directive: i1.TuiNativeValidator }, { directive: i2.TuiId }], ngImport: i0 }); }
97
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputDirective, isStandalone: true, selector: "input[tuiInput]", inputs: { readOnlyLegacy: { classPropertyName: "readOnlyLegacy", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiInput": "" }, listeners: { "focusin": "0", "focusout": "0", "input": "0" }, properties: { "attr.role": "dropdown.content() && !el.matches(\"select\") ? \"combobox\" : null", "class._empty": "value() === \"\"", "readOnly": "readOnly()" } }, providers: [tuiAsTextfieldAccessor(TuiInputDirective)], hostDirectives: [{ directive: i1.TuiNativeValidator }, { directive: i2.TuiId }], ngImport: i0 }); }
87
98
  }
88
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputDirective, decorators: [{
89
100
  type: Directive,
@@ -104,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
104
115
  }], ctorParameters: () => [] });
105
116
  class TuiWithInput {
106
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiWithInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiWithInput, isStandalone: true, hostDirectives: [{ directive: TuiInputDirective, inputs: ["invalid", "invalid", "focused", "focused", "readOnly", "readOnly", "state", "state"] }], ngImport: i0 }); }
118
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiWithInput, isStandalone: true, hostDirectives: [{ directive: TuiInputDirective, inputs: ["invalid", "invalid", "focused", "focused", "readOnly", "readOnly", "readonly", "readonly", "state", "state"] }], ngImport: i0 }); }
108
119
  }
109
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiWithInput, decorators: [{
110
121
  type: Directive,
@@ -112,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
112
123
  hostDirectives: [
113
124
  {
114
125
  directive: TuiInputDirective,
115
- inputs: ['invalid', 'focused', 'readOnly', 'state'],
126
+ inputs: ['invalid', 'focused', 'readOnly', 'readonly', 'state'],
116
127
  },
117
128
  ],
118
129
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-input.mjs","sources":["../../../projects/core/components/input/input.directive.ts","../../../projects/core/components/input/input.ts","../../../projects/core/components/input/taiga-ui-core-components-input.ts"],"sourcesContent":["import {computed, Directive, effect, inject, INJECTOR, input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiId} from '@taiga-ui/cdk/directives/id';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\n@Directive({\n selector: 'input[tuiInput]',\n providers: [tuiAsTextfieldAccessor(TuiInputDirective)],\n hostDirectives: [TuiNativeValidator, TuiId],\n host: {\n tuiInput: '',\n '[attr.role]': 'dropdown.content() && !el.matches(\"select\") ? \"combobox\" : null',\n '[class._empty]': 'value() === \"\"',\n '[readOnly]': 'readOnly()',\n '(focusin)': '0',\n '(focusout)': '0',\n '(input)': '0',\n },\n})\nexport class TuiInputDirective<T> implements TuiTextfieldAccessor<T> {\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance);\n\n protected readonly s = tuiAppearanceState(\n computed(() => this.state() ?? this.textfield.tuiAppearanceState()),\n );\n\n protected readonly m = tuiAppearanceMode(computed(() => this.mode()));\n\n // TODO(v6): move to {@link TuiTextfieldComponent}\n protected readonly f = tuiAppearanceFocus(\n computed(\n () =>\n this.focused() ??\n this.textfield.tuiAppearanceFocus() ??\n this.textfield.focused(),\n ),\n );\n\n public readonly readOnly = input(false);\n\n /**\n * @deprecated use `<tui-textfield [invalid]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly invalid = input<boolean | null>(null);\n\n /**\n * @deprecated use `<tui-textfield [tuiAppearanceFocus]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly focused = input<boolean | null>(null);\n\n /**\n * @deprecated use `<tui-textfield [tuiAppearanceState]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly state = input<TuiInteractiveState | null>(null);\n public readonly value = tuiValue(this.el);\n\n public readonly mode = computed<string | null>(() => {\n const invalid = this.textfield.invalid() ?? this.invalid();\n\n if (this.readOnly()) {\n return 'readonly';\n }\n\n if (invalid === false) {\n return 'valid';\n }\n\n return invalid ? 'invalid' : null;\n });\n\n /**\n * Temporary workaround until TuiControl has deprecated `pseudoInvalid` property\n * We cannot inject `TuiTextfieldComponent` (@taiga-ui/core) inside `TuiControl` (`@taiga-ui/cdk`)\n * TODO(v6): remove all logic inside constructor\n */\n constructor() {\n const injector = inject(INJECTOR);\n const invalid = computed(() => this.textfield.invalid() ?? this.invalid());\n\n effect(() => {\n const control = injector.get(TuiControl, null, {self: true});\n\n if (control) {\n tuiSetSignal(control.pseudoInvalid, invalid());\n }\n });\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n\n // see https://github.com/taiga-family/taiga-ui/issues/11634\n // ensure non-erasable affixes actually deleted\n this.el.value = '';\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.handlers.stringify()(value),\n );\n }\n }\n}\n\n@Directive({\n hostDirectives: [\n {\n directive: TuiInputDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'state'],\n },\n ],\n})\nexport class TuiWithInput {}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputDirective} from './input.directive';\n\nexport const TuiInput = [\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n TuiInputDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-input.mjs","sources":["../../../projects/core/components/input/input.directive.ts","../../../projects/core/components/input/input.ts","../../../projects/core/components/input/taiga-ui-core-components-input.ts"],"sourcesContent":["import {computed, Directive, effect, inject, INJECTOR, input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiId} from '@taiga-ui/cdk/directives/id';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiInjectFormField} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\n@Directive({\n selector: 'input[tuiInput]',\n providers: [tuiAsTextfieldAccessor(TuiInputDirective)],\n hostDirectives: [TuiNativeValidator, TuiId],\n host: {\n tuiInput: '',\n '[attr.role]': 'dropdown.content() && !el.matches(\"select\") ? \"combobox\" : null',\n '[class._empty]': 'value() === \"\"',\n '[readOnly]': 'readOnly()',\n '(focusin)': '0',\n '(focusout)': '0',\n '(input)': '0',\n },\n})\nexport class TuiInputDirective<T> implements TuiTextfieldAccessor<T> {\n private readonly field = tuiInjectFormField({self: true, optional: true});\n private readonly computedInvalid = computed(\n () => this.textfield.invalid() ?? (this.field() ? null : this.invalid()),\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance);\n\n protected readonly s = tuiAppearanceState(\n computed(() => this.state() ?? this.textfield.tuiAppearanceState()),\n );\n\n protected readonly m = tuiAppearanceMode(computed(() => this.mode()));\n\n // TODO(v6): move to {@link TuiTextfieldComponent}\n protected readonly f = tuiAppearanceFocus(\n computed(\n () =>\n this.focused() ??\n this.textfield.tuiAppearanceFocus() ??\n this.textfield.focused(),\n ),\n );\n\n /**\n * @deprecated use `<input [readonly]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly readOnlyLegacy = input(false, {alias: 'readOnly'});\n /**\n * TODO(v6): delete, it's only for backward compatibility\n */\n public readonly readOnly = computed(() => this.readonly() || this.readOnlyLegacy());\n public readonly readonly = input(false);\n\n /**\n * @deprecated use `<tui-textfield [invalid]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly invalid = input<boolean | null>(null);\n\n /**\n * @deprecated use `<tui-textfield [tuiAppearanceFocus]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly focused = input<boolean | null>(null);\n\n /**\n * @deprecated use `<tui-textfield [tuiAppearanceState]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly state = input<TuiInteractiveState | null>(null);\n public readonly value = tuiValue(this.el);\n\n public readonly mode = computed<string | null>(() => {\n const invalid = this.computedInvalid();\n\n if (this.readOnly()) {\n return 'readonly';\n }\n\n if (invalid === false) {\n return 'valid';\n }\n\n return invalid ? 'invalid' : null;\n });\n\n /**\n * Temporary workaround until TuiControl has deprecated `pseudoInvalid` property\n * We cannot inject `TuiTextfieldComponent` (@taiga-ui/core) inside `TuiControl` (`@taiga-ui/cdk`)\n * TODO(v6): remove all logic inside constructor\n */\n constructor() {\n const injector = inject(INJECTOR);\n\n effect(() => {\n const control = injector.get(TuiControl, null, {self: true});\n\n if (control) {\n tuiSetSignal(control.pseudoInvalid, this.computedInvalid());\n }\n });\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n\n // see https://github.com/taiga-family/taiga-ui/issues/11634\n // ensure non-erasable affixes actually deleted\n this.el.value = '';\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.handlers.stringify()(value),\n );\n }\n }\n}\n\n@Directive({\n hostDirectives: [\n {\n directive: TuiInputDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'readonly', 'state'],\n },\n ],\n})\nexport class TuiWithInput {}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputDirective} from './input.directive';\n\nexport const TuiInput = [\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n TuiInputDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;MAyCa,iBAAiB,CAAA;AAyE1B;;;;AAIG;AACH,IAAA,WAAA,GAAA;AA7EiB,QAAA,IAAA,CAAA,KAAK,GAAG,kBAAkB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACxD,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAC3E;QAEkB,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAoB;QACzC,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAwB,MAAM,CAAC,kBAAkB,CAAC;AAC1D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACvC,IAAA,CAAA,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC;QAE3D,IAAA,CAAA,CAAC,GAAG,kBAAkB,CACrC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CACtE;AAEkB,QAAA,IAAA,CAAA,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;QAGlD,IAAA,CAAA,CAAC,GAAG,kBAAkB,CACrC,QAAQ,CACJ,MACI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAC/B,CACJ;AAED;;;AAGG;QACa,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;AAClE;;AAEG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAEvC;;;AAGG;AACa,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,IAAI,CAAC;AAErD;;;AAGG;AACa,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,IAAI,CAAC;AAErD;;;AAGG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA6B,IAAI,CAAC;AAC/C,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAgB,MAAK;AAChD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;AAEtC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjB,gBAAA,OAAO,UAAU;YACrB;AAEA,YAAA,IAAI,OAAO,KAAK,KAAK,EAAE;AACnB,gBAAA,OAAO,OAAO;YAClB;YAEA,OAAO,OAAO,GAAG,SAAS,GAAG,IAAI;AACrC,QAAA,CAAC,CAAC;AAQE,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;YAE5D,IAAI,OAAO,EAAE;gBACT,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/D;AACJ,QAAA,CAAC,CAAC;IACN;AAEO,IAAA,QAAQ,CAAC,KAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AACf,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AAEhB,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC;;;AAI3C,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE;QACtB;aAAO;YACH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAC7B,YAAY,EACZ,KAAK,EACL,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CACnC;QACL;IACJ;+GA3GS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,s9BAZf,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAY7C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE,CAAC,sBAAsB,CAAA,iBAAA,CAAmB,CAAC;AACtD,oBAAA,cAAc,EAAE,CAAC,kBAAkB,EAAE,KAAK,CAAC;AAC3C,oBAAA,IAAI,EAAE;AACF,wBAAA,QAAQ,EAAE,EAAE;AACZ,wBAAA,aAAa,EAAE,iEAAiE;AAChF,wBAAA,gBAAgB,EAAE,gBAAgB;AAClC,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,WAAW,EAAE,GAAG;AAChB,wBAAA,YAAY,EAAE,GAAG;AACjB,wBAAA,SAAS,EAAE,GAAG;AACjB,qBAAA;AACJ,iBAAA;;MAuHY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,oDAtHZ,iBAAiB,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAsHjB,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,iBAAiB;4BAC5B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;AAClE,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;;ACrJM,MAAM,QAAQ,GAAG;IACpB,QAAQ;IACR,qBAAqB;IACrB,4BAA4B;IAC5B,kBAAkB;IAClB,iBAAiB;;;ACdrB;;AAEG;;;;"}