@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.4",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -17,8 +17,26 @@
17
17
  "url": "https://github.com/taiga-family/taiga-ui"
18
18
  },
19
19
  "license": "Apache-2.0",
20
+ "peerDependencies": {
21
+ "@angular/common": ">=19.0.0",
22
+ "@angular/core": ">=19.0.0",
23
+ "@angular/forms": ">=19.0.0",
24
+ "@angular/platform-browser": ">=19.0.0",
25
+ "@angular/router": ">=19.0.0",
26
+ "@ng-web-apis/common": "^5.1.0",
27
+ "@ng-web-apis/mutation-observer": "^5.1.0",
28
+ "@ng-web-apis/platform": "^5.1.0",
29
+ "@taiga-ui/cdk": "^5.0.0-rc.4",
30
+ "@taiga-ui/event-plugins": "^5.0.0",
31
+ "@taiga-ui/i18n": "^5.0.0-rc.4",
32
+ "@taiga-ui/polymorpheus": "^5.0.0",
33
+ "@taiga-ui/styles": "^5.0.0-rc.4",
34
+ "rxjs": ">=7.0.0"
35
+ },
36
+ "schematics": "./schematics/collection.json",
37
+ "module": "fesm2022/taiga-ui-core.mjs",
38
+ "typings": "index.d.ts",
20
39
  "exports": {
21
- "./styles/*": "./styles/*",
22
40
  "./package.json": {
23
41
  "default": "./package.json"
24
42
  },
@@ -74,6 +92,10 @@
74
92
  "types": "./components/cell/index.d.ts",
75
93
  "default": "./fesm2022/taiga-ui-core-components-cell.mjs"
76
94
  },
95
+ "./components/checkbox": {
96
+ "types": "./components/checkbox/index.d.ts",
97
+ "default": "./fesm2022/taiga-ui-core-components-checkbox.mjs"
98
+ },
77
99
  "./components/data-list": {
78
100
  "types": "./components/data-list/index.d.ts",
79
101
  "default": "./fesm2022/taiga-ui-core-components-data-list.mjs"
@@ -110,6 +132,10 @@
110
132
  "types": "./components/notification/index.d.ts",
111
133
  "default": "./fesm2022/taiga-ui-core-components-notification.mjs"
112
134
  },
135
+ "./components/radio": {
136
+ "types": "./components/radio/index.d.ts",
137
+ "default": "./fesm2022/taiga-ui-core-components-radio.mjs"
138
+ },
113
139
  "./components/root": {
114
140
  "types": "./components/root/index.d.ts",
115
141
  "default": "./fesm2022/taiga-ui-core-components-root.mjs"
@@ -118,6 +144,10 @@
118
144
  "types": "./components/scrollbar/index.d.ts",
119
145
  "default": "./fesm2022/taiga-ui-core-components-scrollbar.mjs"
120
146
  },
147
+ "./components/slider": {
148
+ "types": "./components/slider/index.d.ts",
149
+ "default": "./fesm2022/taiga-ui-core-components-slider.mjs"
150
+ },
121
151
  "./components/spin-button": {
122
152
  "types": "./components/spin-button/index.d.ts",
123
153
  "default": "./fesm2022/taiga-ui-core-components-spin-button.mjs"
@@ -199,24 +229,6 @@
199
229
  "default": "./fesm2022/taiga-ui-core-utils-miscellaneous.mjs"
200
230
  }
201
231
  },
202
- "peerDependencies": {
203
- "@angular/common": ">=19.0.0",
204
- "@angular/core": ">=19.0.0",
205
- "@angular/forms": ">=19.0.0",
206
- "@angular/platform-browser": ">=19.0.0",
207
- "@angular/router": ">=19.0.0",
208
- "@ng-web-apis/common": "^5.0.3",
209
- "@ng-web-apis/mutation-observer": "^5.0.3",
210
- "@ng-web-apis/platform": "^5.0.3",
211
- "@taiga-ui/cdk": "^5.0.0-rc.2",
212
- "@taiga-ui/event-plugins": "^5.0.0",
213
- "@taiga-ui/i18n": "^5.0.0-rc.2",
214
- "@taiga-ui/polymorpheus": "^5.0.0",
215
- "rxjs": ">=7.0.0"
216
- },
217
- "schematics": "./schematics/collection.json",
218
- "module": "fesm2022/taiga-ui-core.mjs",
219
- "typings": "index.d.ts",
220
232
  "sideEffects": false,
221
233
  "dependencies": {
222
234
  "tslib": ">=2.8.1"
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TuiDropdownA11y {
3
+ private readonly el;
4
+ private readonly dropdown;
5
+ private readonly open;
6
+ readonly tuiDropdownRole: import("@angular/core").InputSignal<string>;
7
+ protected readonly sync: import("@angular/core").EffectRef;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownA11y, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownA11y, "[tuiDropdownA11y]", never, { "tuiDropdownRole": { "alias": "tuiDropdownRole"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ }
@@ -5,10 +5,10 @@ export declare class TuiDropdownClose {
5
5
  private readonly open;
6
6
  private readonly obscured;
7
7
  private readonly activeZone;
8
- protected readonly tuiDropdownClose: import("@angular/core").OutputRef<boolean | void | (KeyboardEvent & {
9
- readonly currentTarget: Document;
10
- }) | (FocusEvent & {
8
+ protected readonly tuiDropdownClose: import("@angular/core").OutputRef<boolean | void | (FocusEvent & {
11
9
  readonly currentTarget: HTMLElement;
10
+ }) | (KeyboardEvent & {
11
+ readonly currentTarget: Document;
12
12
  })>;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownClose, never>;
14
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownClose, never, never, {}, { "tuiDropdownClose": "tuiDropdownClose"; }, never, never, true, never>;
@@ -1,7 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "@taiga-ui/cdk/directives/obscured";
3
- import * as i2 from "./dropdown-close.directive";
4
- import * as i3 from "@taiga-ui/cdk/directives/active-zone";
3
+ import * as i2 from "./dropdown-a11y.directive";
4
+ import * as i3 from "./dropdown-close.directive";
5
+ import * as i4 from "@taiga-ui/cdk/directives/active-zone";
5
6
  export declare class TuiDropdownOpen {
6
7
  private readonly dropdownHost;
7
8
  private readonly directive;
@@ -25,5 +26,5 @@ export declare class TuiDropdownOpen {
25
26
  private drive;
26
27
  private focusDropdown;
27
28
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownOpen, never>;
28
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "enabled": { "alias": "tuiDropdownEnabled"; "required": false; "isSignal": true; }; "open": { "alias": "tuiDropdownOpen"; "required": false; "isSignal": true; }; }, { "open": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownClose; inputs: {}; outputs: { "tuiDropdownClose": "tuiDropdownClose"; }; }, { directive: typeof i3.TuiActiveZone; inputs: { "tuiActiveZoneParent": "tuiActiveZoneParent"; }; outputs: { "tuiActiveZoneChange": "tuiActiveZoneChange"; }; }]>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "enabled": { "alias": "tuiDropdownEnabled"; "required": false; "isSignal": true; }; "open": { "alias": "tuiDropdownOpen"; "required": false; "isSignal": true; }; }, { "open": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownA11y; inputs: { "tuiDropdownRole": "tuiDropdownRole"; }; outputs: {}; }, { directive: typeof i3.TuiDropdownClose; inputs: {}; outputs: { "tuiDropdownClose": "tuiDropdownClose"; }; }, { directive: typeof i4.TuiActiveZone; inputs: { "tuiActiveZoneParent": "tuiActiveZoneParent"; }; outputs: { "tuiActiveZoneChange": "tuiActiveZoneChange"; }; }]>;
29
30
  }
@@ -37,6 +37,7 @@ export declare class TuiDropdownSelection extends TuiDriver implements TuiRectAc
37
37
  * Create an invisible DIV styled exactly like input/textarea element inside directive
38
38
  */
39
39
  private initGhost;
40
+ private isCaretVisible;
40
41
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownSelection, never>;
41
42
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownSelection, "[tuiDropdownSelection]", never, { "tuiDropdownSelection": { "alias": "tuiDropdownSelection"; "required": false; "isSignal": true; }; "tuiDropdownSelectionPosition": { "alias": "tuiDropdownSelectionPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
43
  }
@@ -1,6 +1,7 @@
1
1
  import { TuiDropdownComponent } from './dropdown.component';
2
2
  import { TuiDropdownDirective } from './dropdown.directive';
3
3
  import { TuiDropdownDriverDirective } from './dropdown.driver';
4
+ import { TuiDropdownA11y } from './dropdown-a11y.directive';
4
5
  import { TuiDropdownContent } from './dropdown-content.directive';
5
6
  import { TuiDropdownContext } from './dropdown-context.directive';
6
7
  import { TuiDropdownHover } from './dropdown-hover.directive';
@@ -10,4 +11,4 @@ import { TuiDropdownOptionsDirective } from './dropdown-options.directive';
10
11
  import { TuiDropdownPosition } from './dropdown-position.directive';
11
12
  import { TuiDropdownPositionSided } from './dropdown-position-sided.directive';
12
13
  import { TuiDropdownSelection } from './dropdown-selection.directive';
13
- export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
14
+ export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownA11y, typeof TuiDropdownOpen, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
@@ -1,7 +1,7 @@
1
- import { type AfterViewChecked, type ComponentRef, type OnDestroy } from '@angular/core';
1
+ import { type AfterViewChecked, type ComponentRef, type OnDestroy, TemplateRef } from '@angular/core';
2
2
  import { type TuiContext } from '@taiga-ui/cdk/types';
3
3
  import { type TuiRectAccessor, type TuiVehicle } from '@taiga-ui/core/classes';
4
- import { PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus';
4
+ import { PolymorpheusComponent, type PolymorpheusContent, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./dropdown.driver";
7
7
  import * as i2 from "./dropdown-position.directive";
@@ -12,17 +12,17 @@ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy
12
12
  private readonly drivers;
13
13
  protected readonly sub: import("rxjs").Subscription;
14
14
  protected readonly autoClose: import("@angular/core").EffectRef;
15
+ readonly id: string;
15
16
  readonly ref: import("@angular/core").WritableSignal<ComponentRef<unknown> | null>;
16
17
  readonly el: HTMLElement;
17
18
  readonly type = "dropdown";
18
19
  readonly component: PolymorpheusComponent<any>;
19
- readonly tuiDropdown: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<() => void>>>;
20
- readonly content: import("@angular/core").Signal<PolymorpheusContent<TuiContext<() => void>>>;
20
+ readonly content: import("@angular/core").InputSignalWithTransform<string | number | PolymorpheusComponent<unknown> | import("@angular/platform-browser").SafeValue | import("@taiga-ui/polymorpheus").PolymorpheusHandler<TuiContext<() => void>> | PolymorpheusTemplate<"" | Partial<TuiContext<() => void>>> | TemplateRef<Partial<TuiContext<() => void>>> | null | undefined, PolymorpheusContent<TuiContext<() => void>>>;
21
21
  get position(): 'absolute' | 'fixed';
22
22
  ngAfterViewChecked(): void;
23
23
  ngOnDestroy(): void;
24
24
  getClientRect(): DOMRect;
25
25
  toggle(show: boolean): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownDirective, never>;
27
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "content": { "alias": "tuiDropdown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
28
28
  }
@@ -4,6 +4,7 @@ export * from './dropdown.component';
4
4
  export * from './dropdown.directive';
5
5
  export * from './dropdown.driver';
6
6
  export * from './dropdown.providers';
7
+ export * from './dropdown-a11y.directive';
7
8
  export * from './dropdown-close.directive';
8
9
  export * from './dropdown-content.directive';
9
10
  export * from './dropdown-context.directive';
@@ -1,3 +1,3 @@
1
- import { InjectionToken, type Provider, type WritableSignal } from '@angular/core';
2
- export declare const TUI_FONT_OFFSET: InjectionToken<WritableSignal<number>>;
1
+ import { InjectionToken, type Provider, type Signal } from '@angular/core';
2
+ export declare const TUI_FONT_OFFSET: InjectionToken<Signal<number>>;
3
3
  export declare function tuiEnableFontScaling(): Provider;
@@ -1,6 +0,0 @@
1
- import { type ProviderToken, type Signal } from '@angular/core';
2
- import { type TuiStringHandler } from '@taiga-ui/cdk/types';
3
- import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
4
- export declare function tuiTextfieldIcon(token: ProviderToken<{
5
- icon: TuiStringHandler<TuiSizeL | TuiSizeS>;
6
- }>): Signal<string>;
@@ -1,51 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- /**
4
- * @name Appearance
5
- * @selector [tuiAppearance]
6
- *
7
- * @description
8
- * Base directive to apply different styles to interactive elements
9
- *
10
- * @attributes
11
- * data-appearance — current appearance
12
- * data-state — manual interactive state override ('active' | 'disabled' | 'hover')
13
- * data-focus — manual :focus-visible state override
14
- * data-mode — arbitrary manual mode like 'checked', 'invalid' or 'checked invalid'
15
- *
16
- * @example
17
- * <button tuiAppearance data-appearance='primary'></button>
18
- *
19
- * @see-also
20
- * Button
21
- */
22
- [tuiAppearance]:where(*&) {
23
- .transition(all);
24
-
25
- position: relative;
26
- appearance: none;
27
- outline: 0.125rem solid transparent;
28
- outline-offset: -0.125rem;
29
- transition-property: color, background-color, opacity, box-shadow, border-color, border-radius, filter;
30
-
31
- &::before,
32
- &::after {
33
- transition-property: none;
34
- transition-duration: inherit;
35
- transition-timing-function: ease-in-out;
36
- }
37
-
38
- .appearance-focus({
39
- outline-color: var(--tui-border-focus);
40
- });
41
-
42
- .appearance-disabled({
43
- cursor: initial;
44
- opacity: var(--tui-disabled-opacity);
45
-
46
- &::before,
47
- &::after {
48
- cursor: initial;
49
- }
50
- });
51
- }
@@ -1,134 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- /**
4
- * @name Button
5
- * @selector [tuiButton], [tuiIconButton]
6
- *
7
- * @description
8
- * Plain button design, applicable to both links and buttons
9
- *
10
- * @attributes
11
- * data-size — size (default: 'l') ('xs' | 's' | 'm' | 'l')
12
- *
13
- * @example
14
- * <button tuiButton>Click me</button>
15
- *
16
- * @see-also
17
- * Icons, Appearance, Link
18
- */
19
- [tuiButton]:where(*&),
20
- [tuiIconButton]:where(*&) {
21
- --t-size: var(--tui-height-l);
22
- --t-radius: var(--tui-radius-l);
23
- --t-gap: 0.25rem;
24
- --t-padding: 0 1.25rem;
25
- --t-margin: -0.25rem;
26
-
27
- .button-base();
28
-
29
- block-size: var(--t-size);
30
- justify-content: center;
31
- border-radius: var(--t-radius);
32
- padding: var(--t-padding);
33
- user-select: none;
34
- cursor: pointer;
35
- font: var(--tui-font-body-m);
36
- font-weight: bold;
37
-
38
- > .t-loader {
39
- .center-all();
40
-
41
- .t-text {
42
- position: absolute;
43
- }
44
- }
45
-
46
- &[data-size='xs'] {
47
- --t-size: var(--tui-height-xs);
48
- --t-radius: var(--tui-radius-xs);
49
- --t-gap: 0.125rem;
50
- --t-padding: 0 0.375rem;
51
- --t-margin: -0.125rem;
52
-
53
- font: var(--tui-font-body-s);
54
-
55
- tui-icon,
56
- &::before,
57
- &::after {
58
- font-size: 1rem;
59
- }
60
- }
61
-
62
- &[data-size='s'] {
63
- --t-size: var(--tui-height-s);
64
- --t-radius: var(--tui-radius-s);
65
- --t-gap: 0.125rem;
66
- --t-padding: 0 0.625rem;
67
- --t-margin: -0.125rem;
68
-
69
- font: var(--tui-font-body-s);
70
-
71
- tui-icon,
72
- &:not([tuiIconButton][data-appearance='icon'], [tuiIconButton][data-appearance='link'])::before,
73
- &:not([tuiIconButton][data-appearance='icon'], [tuiIconButton][data-appearance='link'])::after {
74
- font-size: 1rem;
75
- }
76
- }
77
-
78
- &[data-size='m'] {
79
- --t-size: var(--tui-height-m);
80
- --t-radius: var(--tui-radius-m);
81
- --t-gap: 0.125rem;
82
- --t-padding: 0 1rem;
83
- --t-margin: -0.375rem;
84
-
85
- font: var(--tui-font-body-m);
86
- font-weight: bold;
87
- }
88
-
89
- &._loading {
90
- --tui-disabled-opacity: 1;
91
-
92
- -webkit-text-fill-color: transparent;
93
-
94
- > *,
95
- &::before,
96
- &::after {
97
- opacity: 0;
98
- }
99
-
100
- > .t-loader {
101
- opacity: 1;
102
- }
103
- }
104
-
105
- &[tuiButtonVertical] {
106
- // StackBlitz changes "0rem" to "0" breaking calc
107
- --t-margin: ~'0rem' !important;
108
- --t-line-height: 1rem;
109
-
110
- flex-direction: column;
111
- flex-shrink: 1;
112
- block-size: auto;
113
- padding: 0.75rem;
114
- gap: 0.375rem;
115
- min-inline-size: 5rem;
116
- white-space: pre-line;
117
- font: var(--tui-font-ui-s);
118
-
119
- & > * {
120
- max-block-size: calc(var(--t-line-height) * 2);
121
- }
122
- }
123
- }
124
-
125
- [tuiIconButton]:where(*&) {
126
- gap: 0;
127
- inline-size: var(--t-size);
128
- font-size: 0 !important;
129
- padding: 0;
130
-
131
- &&[data-icon-start]::after {
132
- display: none;
133
- }
134
- }
@@ -1,172 +0,0 @@
1
- /**
2
- * @name Group
3
- * @selector [tuiGroup]
4
- *
5
- * @description
6
- * A directive to combine children into rounded flex group
7
- *
8
- * @attributes
9
- * data-size — size (default: 'l') ('s' | 'm' | 'l')
10
- * data-orientation — orientation (default: 'horizontal') ('horizontal' | 'vertical')
11
- *
12
- * @example
13
- * <div tuiGroup>
14
- * <button tuiButton>Click me</button>
15
- * <button tuiButton>Click me</button>
16
- * <button tuiButton>Click me</button>
17
- * </div>
18
- *
19
- * @see-also
20
- * Button, Block, Textfield
21
- */
22
- [tuiGroup]:where(*&) {
23
- position: relative;
24
- display: flex;
25
- transform: translate3d(0, 0, 0);
26
-
27
- --t-group-radius: var(--tui-radius-l);
28
- --t-group-margin: -1px;
29
- --t-group-mask: linear-gradient(
30
- to right,
31
- rgba(0, 0, 0, 0.5) 1px,
32
- #000 2px,
33
- #000 calc(100% - 2px),
34
- rgba(0, 0, 0, 0.5)
35
- );
36
- --t-group-mask-end: linear-gradient(to right, rgba(0, 0, 0, 0.5) 1px, #000 2px);
37
- --t-group-mask-start: linear-gradient(to right, #000 calc(100% - 2px), rgba(0, 0, 0, 0.5) calc(100% - 1px));
38
-
39
- & > * {
40
- z-index: 1;
41
- flex: 1 1 0;
42
- min-inline-size: 0;
43
- mask: var(--t-group-mask);
44
- mask-clip: no-clip;
45
-
46
- &:disabled,
47
- &._disabled {
48
- z-index: 0;
49
- }
50
-
51
- &:invalid:not([data-mode]),
52
- &[data-mode~='invalid'] {
53
- z-index: 2;
54
-
55
- --t-group-mask: none;
56
- }
57
-
58
- &:has(:invalid:not([data-mode])),
59
- &:has([data-mode~='invalid']) {
60
- z-index: 2;
61
-
62
- --t-group-mask: none;
63
- }
64
-
65
- &:has(:focus-visible) {
66
- z-index: 3;
67
-
68
- --t-group-mask: none;
69
- }
70
-
71
- &:has([data-focus='true']) {
72
- z-index: 3;
73
-
74
- --t-group-mask: none;
75
- }
76
-
77
- &:checked:not([data-mode]),
78
- &[data-mode~='checked'] {
79
- z-index: 4;
80
-
81
- --t-group-mask: none;
82
- }
83
-
84
- &:has([tuiBlock]:checked) {
85
- z-index: 4;
86
-
87
- --t-group-mask: none;
88
- }
89
-
90
- &:not(:last-child) {
91
- margin-inline-end: var(--t-group-margin);
92
- }
93
-
94
- &:nth-child(n) {
95
- border-radius: 0;
96
- }
97
-
98
- &:first-child {
99
- border-radius: var(--t-group-radius) 0 0 var(--t-group-radius);
100
- mask-image: var(--t-group-mask-start);
101
- }
102
-
103
- &:last-child {
104
- border-radius: 0 var(--t-group-radius) var(--t-group-radius) 0;
105
- mask-image: var(--t-group-mask-end);
106
- }
107
-
108
- &:only-child {
109
- border-radius: var(--t-group-radius);
110
- mask: none;
111
- }
112
- }
113
-
114
- [dir='rtl'] &:not([data-orientation='vertical']) > * {
115
- &:first-child {
116
- border-radius: 0 var(--t-group-radius) var(--t-group-radius) 0;
117
- mask-image: var(--t-group-mask-end);
118
- }
119
-
120
- &:last-child {
121
- border-radius: var(--t-group-radius) 0 0 var(--t-group-radius);
122
- mask-image: var(--t-group-mask-start);
123
- }
124
-
125
- &:only-child {
126
- border-radius: var(--t-group-radius);
127
- mask: none;
128
- }
129
- }
130
-
131
- &[data-size='s'],
132
- &[data-size='m'] {
133
- --t-group-radius: var(--tui-radius-m);
134
- }
135
-
136
- &[data-orientation='vertical'] {
137
- display: inline-flex;
138
- flex-direction: column;
139
-
140
- --t-group-mask: linear-gradient(
141
- to bottom,
142
- rgba(0, 0, 0, 0.5) 1px,
143
- #000 2px,
144
- #000 calc(100% - 2px),
145
- rgba(0, 0, 0, 0.5)
146
- );
147
- --t-group-mask-start: linear-gradient(to bottom, #000 calc(100% - 2px), rgba(0, 0, 0, 0.5) calc(100% - 1px));
148
- --t-group-mask-end: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 1px, #000 2px);
149
-
150
- & > * {
151
- min-block-size: auto;
152
- flex: 0 0 auto;
153
-
154
- &:not(:last-child) {
155
- margin-inline-end: 0;
156
- margin-block-end: var(--t-group-margin);
157
- }
158
-
159
- &:first-child {
160
- border-radius: var(--t-group-radius) var(--t-group-radius) 0 0;
161
- }
162
-
163
- &:last-child {
164
- border-radius: 0 0 var(--t-group-radius) var(--t-group-radius);
165
- }
166
-
167
- &:only-child {
168
- border-radius: var(--t-group-radius);
169
- }
170
- }
171
- }
172
- }
@@ -1,83 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- /**
4
- * @name Icon
5
- * @selector tui-icon
6
- *
7
- * @description
8
- * Container for displaying icons colored with CSS (color/background)
9
- *
10
- * @vars
11
- * --t-icon — depending on the data-icon, it can serve as either a mask (`svg`),
12
- a background (`img`), or content (`font`) for the icon.
13
- * --t-icon-bg — mask for the background
14
- *
15
- * @example
16
- * <tui-icon tuiIcons style="--t-icon: url('icon.svg')"></tui-icon>
17
- *
18
- * @see-also
19
- * Icons
20
- */
21
- tui-icon:where(*&) {
22
- --tui-icon-size: 1em;
23
-
24
- position: relative;
25
- display: inline-flex;
26
- inline-size: 1em;
27
- block-size: 1em;
28
- font-size: 1.5rem;
29
- flex-shrink: 0;
30
- border: 0 solid transparent;
31
- vertical-align: middle;
32
- box-sizing: border-box;
33
- mask: var(--t-icon-bg) no-repeat center / calc(100% + 10 * var(--tui-stroke-width, 0.125rem)) 100%;
34
- zoom: ~'calc(100% * (min(max(var(--tui-font-offset) - 10px, 0px), 1px) / 0.8px))';
35
-
36
- @media @tui-mouse {
37
- &[data-appearance='icon']:hover {
38
- color: var(--tui-text-secondary);
39
- }
40
- }
41
-
42
- &[data-icon-end] {
43
- &::before {
44
- mask-image:
45
- var(--t-icon-start),
46
- radial-gradient(circle at bottom 0.1em right 0.1em, transparent calc(0.4em - 0.5px), #000 0.4em);
47
- mask-composite: intersect;
48
- }
49
-
50
- &[data-icon-start='img'],
51
- &[data-icon-start='font'] {
52
- &::before {
53
- mask: radial-gradient(circle at bottom 0.1em right 0.1em, transparent calc(0.4em - 0.5px), #000 0.4em);
54
- }
55
- }
56
-
57
- &::after {
58
- .fullsize();
59
- }
60
- }
61
-
62
- &[data-icon-start] {
63
- &::before {
64
- .fullsize();
65
- }
66
-
67
- &::after {
68
- transform: translate(36%, 36%);
69
-
70
- --tui-icon-size: 0.5715em;
71
- }
72
- }
73
-
74
- &[data-icon-start='img']::before,
75
- &[data-icon-end='img']::after {
76
- zoom: 1;
77
- }
78
-
79
- &[data-icon-start='font']::before,
80
- &[data-icon-end='font']::after {
81
- zoom: 0.667;
82
- }
83
- }