@taiga-ui/core 5.0.0-rc.2 → 5.0.0-rc.4

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 (138) hide show
  1. package/components/calendar/calendar-sheet.component.d.ts +8 -15
  2. package/components/calendar/calendar-spin.component.d.ts +5 -8
  3. package/components/calendar/calendar-year.component.d.ts +11 -19
  4. package/components/calendar/calendar.component.d.ts +7 -9
  5. package/components/checkbox/checkbox.component.d.ts +10 -0
  6. package/components/checkbox/checkbox.options.d.ts +10 -0
  7. package/components/checkbox/index.d.ts +2 -0
  8. package/components/data-list/data-list.component.d.ts +1 -0
  9. package/components/index.d.ts +3 -0
  10. package/components/input/input.directive.d.ts +2 -0
  11. package/components/loader/loader.component.d.ts +0 -2
  12. package/components/radio/index.d.ts +4 -0
  13. package/components/radio/radio.component.d.ts +18 -0
  14. package/components/radio/radio.d.ts +3 -0
  15. package/components/radio/radio.directive.d.ts +8 -0
  16. package/components/radio/radio.options.d.ts +7 -0
  17. package/components/slider/helpers/key-steps.d.ts +27 -0
  18. package/components/slider/helpers/slider-key-steps.directive.d.ts +32 -0
  19. package/components/slider/helpers/slider-readonly.directive.d.ts +15 -0
  20. package/components/slider/helpers/slider-thumb-label.component.d.ts +13 -0
  21. package/components/slider/index.d.ts +6 -0
  22. package/components/slider/slider.component.d.ts +22 -0
  23. package/components/slider/slider.d.ts +5 -0
  24. package/components/textfield/index.d.ts +0 -1
  25. package/components/textfield/textfield.component.d.ts +1 -0
  26. package/directives/items-handlers/items-handlers.validator.d.ts +1 -0
  27. package/fesm2022/taiga-ui-core-components-button.mjs +2 -2
  28. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-core-components-calendar.mjs +84 -174
  30. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-core-components-cell.mjs +2 -2
  32. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-core-components-checkbox.mjs +37 -0
  34. package/fesm2022/taiga-ui-core-components-checkbox.mjs.map +1 -0
  35. package/fesm2022/taiga-ui-core-components-data-list.mjs +10 -4
  36. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-core-components-error.mjs +3 -3
  38. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-core-components-icon.mjs +2 -2
  40. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-core-components-input.mjs +4 -2
  42. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-core-components-label.mjs +3 -3
  44. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
  46. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-components-loader.mjs +5 -8
  48. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  50. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-core-components-radio.mjs +91 -0
  52. package/fesm2022/taiga-ui-core-components-radio.mjs.map +1 -0
  53. package/fesm2022/taiga-ui-core-components-root.mjs +2 -2
  54. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-core-components-slider.mjs +337 -0
  56. package/fesm2022/taiga-ui-core-components-slider.mjs.map +1 -0
  57. package/fesm2022/taiga-ui-core-components-spin-button.mjs +2 -2
  58. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-textfield.mjs +20 -21
  60. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-core-components-title.mjs +3 -3
  62. package/fesm2022/taiga-ui-core-components-title.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components.mjs +3 -0
  64. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-directives-appearance.mjs +3 -3
  66. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-core-directives-group.mjs +3 -3
  68. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-directives-icons.mjs +3 -3
  70. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +7 -1
  72. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-portals-alert.mjs +2 -2
  74. package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-portals-dialog.mjs +2 -2
  76. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +167 -115
  78. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-portals-hint.mjs +3 -3
  80. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-portals-modal.mjs +2 -2
  82. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-portals-popup.mjs +2 -2
  84. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-tokens.mjs +1 -1
  86. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  88. package/package.json +32 -20
  89. package/portals/dropdown/dropdown-a11y.directive.d.ts +10 -0
  90. package/portals/dropdown/dropdown-close.directive.d.ts +3 -3
  91. package/portals/dropdown/dropdown-open.directive.d.ts +4 -3
  92. package/portals/dropdown/dropdown-selection.directive.d.ts +1 -0
  93. package/portals/dropdown/dropdown.d.ts +2 -1
  94. package/portals/dropdown/dropdown.directive.d.ts +5 -5
  95. package/portals/dropdown/index.d.ts +1 -0
  96. package/utils/miscellaneous/font-scaling.d.ts +2 -2
  97. package/components/textfield/textfield-icon.d.ts +0 -6
  98. package/styles/components/appearance.less +0 -51
  99. package/styles/components/button.less +0 -134
  100. package/styles/components/group.less +0 -172
  101. package/styles/components/icon.less +0 -83
  102. package/styles/components/icons.less +0 -79
  103. package/styles/components/label.less +0 -51
  104. package/styles/components/link.less +0 -69
  105. package/styles/components/notification.less +0 -184
  106. package/styles/components/textfield.less +0 -358
  107. package/styles/components/title.less +0 -80
  108. package/styles/mixins/appearance.less +0 -56
  109. package/styles/mixins/appearance.scss +0 -57
  110. package/styles/mixins/browsers.less +0 -23
  111. package/styles/mixins/browsers.scss +0 -23
  112. package/styles/mixins/date-picker.less +0 -152
  113. package/styles/mixins/mixins.less +0 -168
  114. package/styles/mixins/mixins.scss +0 -161
  115. package/styles/mixins/picker.less +0 -200
  116. package/styles/mixins/picker.scss +0 -199
  117. package/styles/mixins/slider.less +0 -67
  118. package/styles/mixins/slider.scss +0 -67
  119. package/styles/taiga-ui-fonts.less +0 -4
  120. package/styles/taiga-ui-local.less +0 -7
  121. package/styles/taiga-ui-local.scss +0 -6
  122. package/styles/taiga-ui-theme.less +0 -4
  123. package/styles/theme/appearance/accent.less +0 -14
  124. package/styles/theme/appearance/action.less +0 -38
  125. package/styles/theme/appearance/flat.less +0 -23
  126. package/styles/theme/appearance/floating.less +0 -21
  127. package/styles/theme/appearance/glass.less +0 -30
  128. package/styles/theme/appearance/outline.less +0 -78
  129. package/styles/theme/appearance/primary.less +0 -48
  130. package/styles/theme/appearance/secondary.less +0 -77
  131. package/styles/theme/appearance/status.less +0 -125
  132. package/styles/theme/appearance/table.less +0 -68
  133. package/styles/theme/appearance/textfield.less +0 -80
  134. package/styles/theme/appearance.less +0 -12
  135. package/styles/theme/palette.less +0 -161
  136. package/styles/theme/variables.less +0 -42
  137. package/styles/variables/media.less +0 -23
  138. package/styles/variables/media.scss +0 -23
@@ -45,11 +45,11 @@ const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(ngDevMode ? 'TUI_NOTIFIC
45
45
 
46
46
  class Styles {
47
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-notification" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-body-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):before{position:absolute;inset-inline-start:-1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]{padding:.375rem .625rem;font:var(--tui-font-body-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]:before{inset-block-start:.5rem;inset-inline-start:-.875rem;font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiTitle]{font:var(--tui-font-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiSubtitle]{font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]{padding:.75rem;font:var(--tui-font-body-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiTitle]{font:var(--tui-font-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiSubtitle]{font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiTitle]{gap:.125rem;font:var(--tui-font-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiSubtitle]{font:var(--tui-font-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-notification" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):before{position:absolute;inset-inline-start:-1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]{padding:.375rem var(--tui-padding-s);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]:before{inset-block-start:.5rem;inset-inline-start:-.875rem;font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]{padding:var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Styles, decorators: [{
51
51
  type: Component,
52
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-notification' }, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-body-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):before{position:absolute;inset-inline-start:-1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]{padding:.375rem .625rem;font:var(--tui-font-body-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]:before{inset-block-start:.5rem;inset-inline-start:-.875rem;font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiTitle]{font:var(--tui-font-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiSubtitle]{font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]{padding:.75rem;font:var(--tui-font-body-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiTitle]{font:var(--tui-font-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiSubtitle]{font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiTitle]{gap:.125rem;font:var(--tui-font-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiSubtitle]{font:var(--tui-font-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.2\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"] }]
52
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-notification' }, styles: ["[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]){-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:flow-root;max-block-size:100%;color:var(--tui-text-primary);padding:var(--tui-padding-l);font:var(--tui-typography-body-m);border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-icon-start]{--t-start: 2rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-icon-end]{--t-end: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):before{position:absolute;inset-inline-start:-1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]):after{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]{padding:.375rem var(--tui-padding-s);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s][data-icon-start]{--t-start: 1.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]:before{inset-block-start:.5rem;inset-inline-start:-.875rem;font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]:after{inset-inline-end:-.875rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] tui-icon{font-size:1rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiTitle]{font:var(--tui-typography-body-s);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]>[tuiIconButton]{inset-block-start:0;inset-inline-end:0}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]{padding:var(--tui-padding-m);font:var(--tui-typography-body-s);border-radius:var(--tui-radius-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m][data-icon-start]{--t-start: 1.625rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]:before{inset-inline-start:-.875rem;font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]:after{inset-inline-end:-.75rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] tui-icon{font-size:1.25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiTitle]{font:var(--tui-typography-ui-m);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiSubtitle]{font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=m]>[tuiIconButton]{inset-block-start:.375rem;inset-inline-end:.5rem}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiTitle]{gap:.125rem;font:var(--tui-typography-ui-l);font-weight:700}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiSubtitle]{font:var(--tui-typography-body-m)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"]) [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-typography-body-s)}[tuiNotification]:where(*[data-tui-version=\"5.0.0-rc.4\"])>[tuiIconButton]{position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem;box-shadow:none!important;background:transparent!important}\n"] }]
53
53
  }] });
54
54
  class TuiNotificationDirective {
55
55
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-notification.mjs","sources":["../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.directive.ts","../../../projects/core/components/notification/notification.component.ts","../../../projects/core/components/notification/notification.template.html","../../../projects/core/components/notification/notification.service.ts","../../../projects/core/components/notification/notification.ts","../../../projects/core/components/notification/taiga-ui-core-components-notification.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {type TuiNumberHandler, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiPositionOptions} from '@taiga-ui/core/portals/alert';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiNotificationOptions<I = undefined>\n extends TuiAppearanceOptions, TuiPositionOptions {\n readonly icon: TuiStringHandler<string> | string;\n readonly size: TuiSizeL | TuiSizeS;\n readonly autoClose: TuiNumberHandler<string> | number;\n readonly closable: boolean;\n readonly label: string;\n readonly data: I;\n}\n\nconst ICONS: Record<string, string> = {\n info: '@tui.info',\n positive: '@tui.circle-check',\n negative: '@tui.circle-x',\n warning: '@tui.circle-alert',\n neutral: '@tui.info',\n};\n\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: TuiNotificationOptions = {\n appearance: 'info',\n icon: (appearance) => ICONS[appearance] ?? '',\n size: 'l',\n data: undefined,\n autoClose: 3000,\n label: '',\n closable: true,\n block: 'start',\n inline: 'end',\n};\n\nexport const [TUI_NOTIFICATION_OPTIONS, tuiNotificationOptionsProvider] =\n tuiCreateOptions(TUI_NOTIFICATION_DEFAULT_OPTIONS);\n\nexport const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(\n ngDevMode ? 'TUI_NOTIFICATION_CONCURRENCY' : '',\n {factory: () => 5},\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconStart, TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_NOTIFICATION_OPTIONS} from './notification.options';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/core/styles/components/notification.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-notification'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiNotification]:not(ng-template)',\n providers: [\n tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),\n tuiLinkOptionsProvider({appearance: ''}),\n tuiButtonOptionsProvider({appearance: 'outline-grayscale', size: 's'}),\n ],\n hostDirectives: [TuiWithIcons, TuiWithAppearance],\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiNotificationDirective {\n private readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly icons = tuiIconStart(\n computed((icon = this.icon()) =>\n tuiIsString(icon) ? icon : icon(this.appearance()),\n ),\n );\n\n public readonly appearance = input(this.options.appearance);\n public readonly size = input(this.options.size);\n public readonly icon = input<TuiStringHandler<string> | string>(this.options.icon);\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiTitle} from '@taiga-ui/core/components/title';\nimport {TuiAlertDirective} from '@taiga-ui/core/portals/alert';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiNotificationDirective} from './notification.directive';\nimport {type TuiNotificationOptions} from './notification.options';\n\n@Component({\n selector: 'tui-notification-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiNotificationDirective, TuiTitle],\n templateUrl: './notification.template.html',\n styleUrl: './notification.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiAlertDirective],\n host: {role: 'alert'},\n})\nexport class TuiNotificationComponent<O, I> {\n private readonly el = tuiInjectElement();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly close = inject(TUI_CLOSE_WORD);\n protected readonly item =\n injectContext<TuiPortalContext<TuiNotificationOptions<I>, O>>();\n\n protected readonly sub = of(\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.appearance)\n : this.item.autoClose,\n )\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.item.$implicit.complete());\n}\n","<div class=\"t-wrapper\">\n <div\n size=\"m\"\n tuiNotification\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </div>\n</div>\n","import {Directive, inject, Injectable, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiAlertService} from '@taiga-ui/core/portals/alert';\n\nimport {TuiNotificationComponent} from './notification.component';\nimport {\n TUI_NOTIFICATION_CONCURRENCY,\n TUI_NOTIFICATION_OPTIONS,\n type TuiNotificationOptions,\n} from './notification.options';\n\n@Injectable({providedIn: 'root'})\nexport class TuiNotificationService extends TuiAlertService<TuiNotificationOptions<any>> {\n protected override readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n protected override readonly component = TuiNotificationComponent;\n\n constructor() {\n super(inject(TUI_NOTIFICATION_CONCURRENCY));\n }\n}\n\n@Directive({\n selector: 'ng-template[tuiNotification]',\n providers: [tuiAsPortal(TuiNotificationService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiNotificationOptions', 'open: tuiNotification'],\n outputs: ['openChange: tuiNotificationChange'],\n },\n ],\n})\nexport class TuiNotificationTemplate<T> {\n public readonly tuiNotificationOptions = input<Partial<TuiNotificationOptions<T>>>(\n {},\n );\n}\n","import {TuiNotificationDirective} from './notification.directive';\nimport {TuiNotificationTemplate} from './notification.service';\n\nexport const TuiNotification = [\n TuiNotificationDirective,\n TuiNotificationTemplate,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-notification.mjs","sources":["../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.directive.ts","../../../projects/core/components/notification/notification.component.ts","../../../projects/core/components/notification/notification.template.html","../../../projects/core/components/notification/notification.service.ts","../../../projects/core/components/notification/notification.ts","../../../projects/core/components/notification/taiga-ui-core-components-notification.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {type TuiNumberHandler, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiPositionOptions} from '@taiga-ui/core/portals/alert';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiNotificationOptions<I = undefined>\n extends TuiAppearanceOptions, TuiPositionOptions {\n readonly icon: TuiStringHandler<string> | string;\n readonly size: TuiSizeL | TuiSizeS;\n readonly autoClose: TuiNumberHandler<string> | number;\n readonly closable: boolean;\n readonly label: string;\n readonly data: I;\n}\n\nconst ICONS: Record<string, string> = {\n info: '@tui.info',\n positive: '@tui.circle-check',\n negative: '@tui.circle-x',\n warning: '@tui.circle-alert',\n neutral: '@tui.info',\n};\n\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: TuiNotificationOptions = {\n appearance: 'info',\n icon: (appearance) => ICONS[appearance] ?? '',\n size: 'l',\n data: undefined,\n autoClose: 3000,\n label: '',\n closable: true,\n block: 'start',\n inline: 'end',\n};\n\nexport const [TUI_NOTIFICATION_OPTIONS, tuiNotificationOptionsProvider] =\n tuiCreateOptions(TUI_NOTIFICATION_DEFAULT_OPTIONS);\n\nexport const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(\n ngDevMode ? 'TUI_NOTIFICATION_CONCURRENCY' : '',\n {factory: () => 5},\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconStart, TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_NOTIFICATION_OPTIONS} from './notification.options';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/notification.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-notification'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiNotification]:not(ng-template)',\n providers: [\n tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),\n tuiLinkOptionsProvider({appearance: ''}),\n tuiButtonOptionsProvider({appearance: 'outline-grayscale', size: 's'}),\n ],\n hostDirectives: [TuiWithIcons, TuiWithAppearance],\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiNotificationDirective {\n private readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly icons = tuiIconStart(\n computed((icon = this.icon()) =>\n tuiIsString(icon) ? icon : icon(this.appearance()),\n ),\n );\n\n public readonly appearance = input(this.options.appearance);\n public readonly size = input(this.options.size);\n public readonly icon = input<TuiStringHandler<string> | string>(this.options.icon);\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiTitle} from '@taiga-ui/core/components/title';\nimport {TuiAlertDirective} from '@taiga-ui/core/portals/alert';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiNotificationDirective} from './notification.directive';\nimport {type TuiNotificationOptions} from './notification.options';\n\n@Component({\n selector: 'tui-notification-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiNotificationDirective, TuiTitle],\n templateUrl: './notification.template.html',\n styleUrl: './notification.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiAlertDirective],\n host: {role: 'alert'},\n})\nexport class TuiNotificationComponent<O, I> {\n private readonly el = tuiInjectElement();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly close = inject(TUI_CLOSE_WORD);\n protected readonly item =\n injectContext<TuiPortalContext<TuiNotificationOptions<I>, O>>();\n\n protected readonly sub = of(\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.appearance)\n : this.item.autoClose,\n )\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.item.$implicit.complete());\n}\n","<div class=\"t-wrapper\">\n <div\n size=\"m\"\n tuiNotification\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </div>\n</div>\n","import {Directive, inject, Injectable, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiAlertService} from '@taiga-ui/core/portals/alert';\n\nimport {TuiNotificationComponent} from './notification.component';\nimport {\n TUI_NOTIFICATION_CONCURRENCY,\n TUI_NOTIFICATION_OPTIONS,\n type TuiNotificationOptions,\n} from './notification.options';\n\n@Injectable({providedIn: 'root'})\nexport class TuiNotificationService extends TuiAlertService<TuiNotificationOptions<any>> {\n protected override readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n protected override readonly component = TuiNotificationComponent;\n\n constructor() {\n super(inject(TUI_NOTIFICATION_CONCURRENCY));\n }\n}\n\n@Directive({\n selector: 'ng-template[tuiNotification]',\n providers: [tuiAsPortal(TuiNotificationService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiNotificationOptions', 'open: tuiNotification'],\n outputs: ['openChange: tuiNotificationChange'],\n },\n ],\n})\nexport class TuiNotificationTemplate<T> {\n public readonly tuiNotificationOptions = input<Partial<TuiNotificationOptions<T>>>(\n {},\n );\n}\n","import {TuiNotificationDirective} from './notification.directive';\nimport {TuiNotificationTemplate} from './notification.service';\n\nexport const TuiNotification = [\n TuiNotificationDirective,\n TuiNotificationTemplate,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, DestroyRef, input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { NgControl, NgModel, RadioControlValueAccessor } from '@angular/forms';
5
+ import { TUI_DEFAULT_IDENTITY_MATCHER } from '@taiga-ui/cdk/constants';
6
+ import * as i2 from '@taiga-ui/cdk/directives/native-validator';
7
+ import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
8
+ import { tuiControlValue } from '@taiga-ui/cdk/observables';
9
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
10
+ import * as i1 from '@taiga-ui/core/directives/appearance';
11
+ import { tuiAppearance, TuiAppearance } from '@taiga-ui/core/directives/appearance';
12
+ import { distinctUntilChanged } from 'rxjs';
13
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
14
+
15
+ const [TUI_RADIO_OPTIONS, tuiRadioOptionsProvider] = tuiCreateOptions({
16
+ size: 'm',
17
+ appearance: ({ checked }) => (checked ? 'primary' : 'outline-grayscale'),
18
+ });
19
+
20
+ class TuiRadioComponent {
21
+ constructor() {
22
+ this.destroyRef = inject(DestroyRef);
23
+ this.el = tuiInjectElement();
24
+ this.options = inject(TUI_RADIO_OPTIONS);
25
+ this.appearance = tuiAppearance(this.options.appearance(this.el));
26
+ this.control = inject(NgControl, { self: true, optional: true });
27
+ this.size = input(this.options.size);
28
+ }
29
+ ngOnInit() {
30
+ tuiControlValue(this.control)
31
+ .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
32
+ .subscribe((value) => {
33
+ // https://github.com/angular/angular/issues/14988
34
+ const fix = this.control instanceof NgModel && value == null
35
+ ? this.control.model
36
+ : value;
37
+ this.el.indeterminate = fix == null && this.el.matches('[tuiCheckbox]');
38
+ this.ngDoCheck();
39
+ });
40
+ }
41
+ ngDoCheck() {
42
+ this.appearance.set(this.options.appearance(this.el));
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: TuiRadioComponent, isStandalone: true, selector: "input[type=\"radio\"][tuiRadio]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "disabled": "!control || control.disabled", "attr.data-size": "size()", "class._readonly": "!control" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):before{position:absolute;inset:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRadioComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'input[type="radio"][tuiRadio]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
50
+ {
51
+ directive: TuiAppearance,
52
+ inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],
53
+ },
54
+ TuiNativeValidator,
55
+ ], host: {
56
+ '[disabled]': '!control || control.disabled',
57
+ '[attr.data-size]': 'size()',
58
+ '[class._readonly]': '!control',
59
+ }, styles: ["[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]){--t-size: 1.5rem;transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:var(--t-size);block-size:var(--t-size);cursor:pointer;margin:0;flex-shrink:0;border-radius:100%;color:var(--tui-text-primary-on-accent-1)}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):disabled._readonly._readonly{opacity:1}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):before{position:absolute;inset:0;content:\"\";margin:auto;border-radius:100%;background:currentColor;transform:scale(0);transition-property:transform}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):checked:before{transform:scale(.5)}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-size=s]{--t-size: 1rem}[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"]):invalid:not([data-mode]),[tuiRadio]:where(*[data-tui-version=\"5.0.0-rc.4\"])[data-mode~=invalid]{color:#fff}\n"] }]
60
+ }] });
61
+
62
+ class TuiRadioDirective {
63
+ constructor() {
64
+ this.identityMatcher = input(TUI_DEFAULT_IDENTITY_MATCHER);
65
+ const accessor = inject(RadioControlValueAccessor);
66
+ const writeValue = accessor.writeValue.bind(accessor);
67
+ accessor.writeValue = (value) => {
68
+ if (this.identityMatcher()(value, accessor.value)) {
69
+ writeValue(accessor.value);
70
+ }
71
+ else {
72
+ writeValue(value);
73
+ }
74
+ };
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
77
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.18", type: TuiRadioDirective, isStandalone: true, selector: "input[type=\"radio\"][tuiRadio][identityMatcher]", inputs: { identityMatcher: { classPropertyName: "identityMatcher", publicName: "identityMatcher", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRadioDirective, decorators: [{
80
+ type: Directive,
81
+ args: [{ selector: 'input[type="radio"][tuiRadio][identityMatcher]' }]
82
+ }], ctorParameters: () => [] });
83
+
84
+ const TuiRadio = [TuiRadioComponent, TuiRadioDirective];
85
+
86
+ /**
87
+ * Generated bundle index. Do not edit.
88
+ */
89
+
90
+ export { TUI_RADIO_OPTIONS, TuiRadio, TuiRadioComponent, TuiRadioDirective, tuiRadioOptionsProvider };
91
+ //# sourceMappingURL=taiga-ui-core-components-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-core-components-radio.mjs","sources":["../../../projects/core/components/radio/radio.options.ts","../../../projects/core/components/radio/radio.component.ts","../../../projects/core/components/radio/radio.directive.ts","../../../projects/core/components/radio/radio.ts","../../../projects/core/components/radio/taiga-ui-core-components-radio.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiRadioOptions {\n readonly appearance: TuiStringHandler<HTMLInputElement>;\n readonly size: TuiSizeS;\n}\n\nexport const [TUI_RADIO_OPTIONS, tuiRadioOptionsProvider] =\n tuiCreateOptions<TuiRadioOptions>({\n size: 'm',\n appearance: ({checked}) => (checked ? 'primary' : 'outline-grayscale'),\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n type DoCheck,\n inject,\n input,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiAppearance, tuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {distinctUntilChanged} from 'rxjs';\n\nimport {TUI_RADIO_OPTIONS, type TuiRadioOptions} from './radio.options';\n\n@Component({\n selector: 'input[type=\"radio\"][tuiRadio]',\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import '@taiga-ui/styles/components/radio.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n },\n TuiNativeValidator,\n ],\n host: {\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size()',\n '[class._readonly]': '!control',\n },\n})\nexport class TuiRadioComponent<T extends TuiRadioOptions> implements DoCheck, OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly options = inject<T>(TUI_RADIO_OPTIONS);\n protected readonly appearance = tuiAppearance(this.options.appearance(this.el));\n protected readonly control = inject(NgControl, {self: true, optional: true});\n\n public readonly size = input(this.options.size);\n\n public ngOnInit(): void {\n tuiControlValue(this.control)\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n // https://github.com/angular/angular/issues/14988\n const fix =\n this.control instanceof NgModel && value == null\n ? this.control.model\n : value;\n\n this.el.indeterminate = fix == null && this.el.matches('[tuiCheckbox]');\n this.ngDoCheck();\n });\n }\n\n public ngDoCheck(): void {\n this.appearance.set(this.options.appearance(this.el));\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {RadioControlValueAccessor} from '@angular/forms';\nimport {TUI_DEFAULT_IDENTITY_MATCHER} from '@taiga-ui/cdk/constants';\nimport {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n@Directive({selector: 'input[type=\"radio\"][tuiRadio][identityMatcher]'})\nexport class TuiRadioDirective<T> {\n public readonly identityMatcher = input<TuiIdentityMatcher<T>>(\n TUI_DEFAULT_IDENTITY_MATCHER,\n );\n\n constructor() {\n const accessor = inject(RadioControlValueAccessor);\n const writeValue = accessor.writeValue.bind(accessor);\n\n accessor.writeValue = (value: T) => {\n if (this.identityMatcher()(value, accessor.value)) {\n writeValue(accessor.value);\n } else {\n writeValue(value);\n }\n };\n }\n}\n","import {TuiRadioComponent} from './radio.component';\nimport {TuiRadioDirective} from './radio.directive';\n\nexport const TuiRadio = [TuiRadioComponent, TuiRadioDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ class TuiRoot {
33
33
  return this.doc.fullscreenElement === this.el || !this.child;
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "5.0.0-rc.2" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(parent)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "breakpoint() === \"mobile\"" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "5.0.0-rc.4" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(parent)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "breakpoint() === \"mobile\"" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRoot, decorators: [{
39
39
  type: Component,
@@ -45,7 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
45
45
  // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490
46
46
  '(touchstart.passive.zoneless)': '0',
47
47
  '(document:fullscreenchange)': 'top.set(parent)',
48
- }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
48
+ }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-typography-body-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
49
49
  }] });
50
50
 
51
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPopups} from '@taiga-ui/core/portals/popup';\nimport {\n TUI_ANIMATIONS_SPEED,\n TUI_BREAKPOINT,\n TUI_REDUCED_MOTION,\n} from '@taiga-ui/core/tokens';\nimport {TUI_OPTIONS, tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n selector: 'tui-root',\n imports: [TuiPopups, TuiScrollControls],\n templateUrl: './root.template.html',\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '[class._mobile]': 'breakpoint() === \"mobile\"',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n '(document:fullscreenchange)': 'top.set(parent)',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n private readonly child = !!inject(TuiRoot, {optional: true, skipSelf: true});\n\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly top = signal(this.parent);\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n protected readonly scrollbars =\n !inject(WA_IS_MOBILE) &&\n !this.child &&\n inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&\n inject(TUI_OPTIONS).scrollbars !== 'native';\n\n protected get parent(): boolean {\n return this.doc.fullscreenElement === this.el || !this.child;\n }\n}\n","<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPopups} from '@taiga-ui/core/portals/popup';\nimport {\n TUI_ANIMATIONS_SPEED,\n TUI_BREAKPOINT,\n TUI_REDUCED_MOTION,\n} from '@taiga-ui/core/tokens';\nimport {TUI_OPTIONS, tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n selector: 'tui-root',\n imports: [TuiPopups, TuiScrollControls],\n templateUrl: './root.template.html',\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '[class._mobile]': 'breakpoint() === \"mobile\"',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n '(document:fullscreenchange)': 'top.set(parent)',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n private readonly child = !!inject(TuiRoot, {optional: true, skipSelf: true});\n\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly top = signal(this.parent);\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n protected readonly scrollbars =\n !inject(WA_IS_MOBILE) &&\n !this.child &&\n inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&\n inject(TUI_OPTIONS).scrollbars !== 'native';\n\n protected get parent(): boolean {\n return this.doc.fullscreenElement === this.el || !this.child;\n }\n}\n","<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}