@taiga-ui/core 5.0.0-canary.856b30d → 5.0.0-canary.8b0b9ac

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 (85) hide show
  1. package/components/data-list/index.d.ts +1 -0
  2. package/components/data-list/option-content.directive.d.ts +1 -1
  3. package/components/data-list/option-with-content.directive.d.ts +9 -0
  4. package/components/data-list/option-with-value.directive.d.ts +2 -1
  5. package/components/data-list/option.directive.d.ts +0 -4
  6. package/components/textfield/textfield-multi/textfield-item.component.d.ts +1 -0
  7. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -0
  8. package/fesm2022/taiga-ui-core-classes.mjs +3 -3
  9. package/fesm2022/taiga-ui-core-components-button.mjs +8 -7
  10. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-core-components-calendar.mjs +23 -33
  12. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
  14. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  15. package/fesm2022/taiga-ui-core-components-data-list.mjs +43 -34
  16. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-core-components-error.mjs +10 -12
  18. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
  20. package/fesm2022/taiga-ui-core-components-icon.mjs +8 -12
  21. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-core-components-input.mjs +6 -6
  23. package/fesm2022/taiga-ui-core-components-label.mjs +9 -7
  24. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-core-components-link.mjs +8 -7
  26. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-core-components-loader.mjs +3 -3
  28. package/fesm2022/taiga-ui-core-components-notification.mjs +18 -19
  29. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-core-components-root.mjs +3 -3
  31. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +24 -30
  32. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -3
  34. package/fesm2022/taiga-ui-core-components-textfield.mjs +42 -30
  35. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-core-components-title.mjs +9 -7
  37. package/fesm2022/taiga-ui-core-components-title.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-core-directives-appearance.mjs +14 -16
  39. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-core-directives-button-x.mjs +3 -3
  41. package/fesm2022/taiga-ui-core-directives-date-format.mjs +3 -3
  42. package/fesm2022/taiga-ui-core-directives-group.mjs +9 -7
  43. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-core-directives-icons.mjs +12 -10
  45. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +12 -18
  47. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-core-directives-number-format.mjs +3 -3
  49. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
  50. package/fesm2022/taiga-ui-core-portals-alert.mjs +9 -9
  51. package/fesm2022/taiga-ui-core-portals-dialog.mjs +13 -15
  52. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +57 -69
  54. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-core-portals-hint.mjs +42 -50
  56. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-portals-modal.mjs +8 -8
  58. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-portals-popup.mjs +11 -15
  60. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-core-services.mjs +7 -9
  62. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-tokens.mjs +17 -33
  64. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  66. package/package.json +10 -10
  67. package/styles/components/appearance.less +2 -1
  68. package/styles/components/button.less +4 -3
  69. package/styles/components/group.less +1 -1
  70. package/styles/components/icon.less +2 -2
  71. package/styles/components/icons.less +3 -3
  72. package/styles/components/label.less +1 -1
  73. package/styles/components/link.less +3 -2
  74. package/styles/components/notification.less +2 -2
  75. package/styles/components/textfield.less +33 -33
  76. package/styles/components/title.less +6 -6
  77. package/styles/mixins/slider.less +12 -15
  78. package/styles/mixins/slider.scss +12 -17
  79. package/styles/theme/appearance/action.less +0 -14
  80. package/styles/theme/appearance/floating.less +8 -3
  81. package/styles/theme/variables.less +6 -2
  82. package/tokens/i18n.d.ts +4 -0
  83. package/tokens/index.d.ts +0 -1
  84. package/utils/miscellaneous/font-scaling.d.ts +2 -2
  85. package/tokens/theme.d.ts +0 -2
@@ -19,7 +19,7 @@
19
19
  * @see-also
20
20
  * Button
21
21
  */
22
- [tuiAppearance] {
22
+ [tuiAppearance]:where(*&) {
23
23
  .transition(all);
24
24
 
25
25
  position: relative;
@@ -30,6 +30,7 @@
30
30
 
31
31
  &::before,
32
32
  &::after {
33
+ transition-property: none;
33
34
  transition-duration: inherit;
34
35
  transition-timing-function: ease-in-out;
35
36
  }
@@ -16,8 +16,8 @@
16
16
  * @see-also
17
17
  * Icons, Appearance, Link
18
18
  */
19
- [tuiButton],
20
- [tuiIconButton] {
19
+ [tuiButton]:where(*&),
20
+ [tuiIconButton]:where(*&) {
21
21
  --t-size: var(--tui-height-l);
22
22
  --t-radius: var(--tui-radius-l);
23
23
  --t-gap: 0.25rem;
@@ -122,9 +122,10 @@
122
122
  }
123
123
  }
124
124
 
125
- [tuiIconButton] {
125
+ [tuiIconButton]:where(*&) {
126
126
  gap: 0;
127
127
  inline-size: var(--t-size);
128
+ min-inline-size: var(--t-size);
128
129
  font-size: 0 !important;
129
130
  padding: 0;
130
131
 
@@ -19,7 +19,7 @@
19
19
  * @see-also
20
20
  * Button, Block, Textfield
21
21
  */
22
- [tuiGroup] {
22
+ [tuiGroup]:where(*&) {
23
23
  position: relative;
24
24
  display: flex;
25
25
  transform: translate3d(0, 0, 0);
@@ -18,7 +18,7 @@
18
18
  * @see-also
19
19
  * Icons
20
20
  */
21
- tui-icon {
21
+ tui-icon:where(*&) {
22
22
  --tui-icon-size: 1em;
23
23
 
24
24
  position: relative;
@@ -30,7 +30,7 @@ tui-icon {
30
30
  border: 0 solid transparent;
31
31
  vertical-align: middle;
32
32
  box-sizing: border-box;
33
- mask: var(--t-icon-bg) no-repeat center / calc(100% + 10 * var(--tui-stroke-width, 0.125rem)) 100%;
33
+ mask: var(--t-icon-bg) no-repeat center / calc(100% + 10 * var(--tui-stroke-width)) 100%;
34
34
  zoom: ~'calc(100% * (min(max(var(--tui-font-offset) - 10px, 0px), 1px) / 0.8px))';
35
35
 
36
36
  @media @tui-mouse {
@@ -17,7 +17,7 @@
17
17
  * @see-also
18
18
  * Button, Icon, Link
19
19
  */
20
- [tuiIcons] {
20
+ [tuiIcons]:where(*&) {
21
21
  --t-icon-start: none;
22
22
  --t-icon-end: none;
23
23
 
@@ -37,14 +37,14 @@
37
37
  &::before {
38
38
  display: var(--t-icon-start);
39
39
  mask:
40
- var(--t-icon-start) no-repeat center / calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width, 0.125rem))
40
+ var(--t-icon-start) no-repeat center / calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width))
41
41
  ~'min(1em, 100%)',
42
42
  100% padding-box;
43
43
  }
44
44
 
45
45
  &::after {
46
46
  display: var(--t-icon-end);
47
- mask: var(--t-icon-end) no-repeat center / calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width, 0.125rem))
47
+ mask: var(--t-icon-end) no-repeat center / calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width))
48
48
  ~'min(1em, 100%)' padding-box;
49
49
  }
50
50
 
@@ -14,7 +14,7 @@
14
14
  * @see-also
15
15
  * Checkbox, Radio, Title
16
16
  */
17
- [tuiLabel] {
17
+ [tuiLabel]:where(*&) {
18
18
  display: flex;
19
19
  gap: 0.25rem;
20
20
  flex-direction: column;
@@ -13,7 +13,7 @@
13
13
  * @see-also
14
14
  * Icons, Appearance, Button
15
15
  */
16
- [tuiLink] {
16
+ [tuiLink]:where(*&) {
17
17
  .transition(~'color, text-decoration, opacity');
18
18
 
19
19
  padding: 0;
@@ -45,12 +45,13 @@
45
45
  font-size: 0;
46
46
  line-height: 0;
47
47
  box-sizing: border-box;
48
- mask-size: calc(100% + 10 * var(--tui-stroke-width, 0.125rem)) 100%;
48
+ mask-size: calc(100% + 10 * var(--tui-stroke-width)) 100%;
49
49
  transition: none;
50
50
  }
51
51
 
52
52
  &[tuiChevron]::after {
53
53
  display: inline-block;
54
+ vertical-align: initial;
54
55
  }
55
56
 
56
57
  .appearance-hover({
@@ -21,11 +21,11 @@
21
21
  * @see-also
22
22
  * Icons, Appearance
23
23
  */
24
- [tuiNotification] {
24
+ [tuiNotification]:where(*&) {
25
25
  .button-clear();
26
26
 
27
27
  position: relative;
28
- display: block;
28
+ display: flow-root;
29
29
  max-block-size: 100%;
30
30
  color: var(--tui-text-primary);
31
31
  padding: 1rem;
@@ -1,6 +1,6 @@
1
1
  @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
2
 
3
- tui-textfield {
3
+ tui-textfield:where(*&) {
4
4
  .scrollbar-hidden();
5
5
  .transition(color);
6
6
 
@@ -10,6 +10,7 @@ tui-textfield {
10
10
  --t-label-font: var(--tui-font-body-s);
11
11
  --t-end: ~'0rem';
12
12
  --t-start: ~'0rem';
13
+ --t-side: ~'0rem';
13
14
 
14
15
  position: relative;
15
16
  display: flex;
@@ -21,7 +22,6 @@ tui-textfield {
21
22
  font: var(--tui-font-ui-m);
22
23
  line-height: 1.25rem;
23
24
  box-sizing: border-box;
24
- gap: 0 0.25rem;
25
25
  isolation: isolate;
26
26
 
27
27
  &[tuiAppearance] {
@@ -39,27 +39,29 @@ tui-textfield {
39
39
  }
40
40
 
41
41
  &[data-icon-start] {
42
- --t-start: 2.25rem;
42
+ --t-start: 2.5rem;
43
43
  }
44
44
 
45
45
  &[data-icon-end] {
46
- --t-end: 2.25rem;
46
+ --t-end: 1.75rem;
47
47
  }
48
48
 
49
49
  &[tuiIcons] {
50
50
  &::before {
51
51
  z-index: 1;
52
52
  block-size: var(--t-height);
53
- margin-inline-end: 0.5rem;
53
+ inline-size: 1.5rem;
54
+ margin-inline-end: 1rem;
54
55
  pointer-events: none;
55
56
  }
56
57
 
57
58
  &::after {
58
59
  position: relative;
59
60
  block-size: var(--t-height);
61
+ inline-size: calc(1.5rem + 2 * var(--t-padding));
60
62
  cursor: pointer;
61
- border-inline: var(--t-padding) solid transparent;
62
- margin: 0 calc(-1 * var(--t-padding));
63
+ margin-inline-start: calc(0.25rem - var(--t-padding));
64
+ margin-inline-end: calc(-1 * var(--t-padding));
63
65
  }
64
66
  }
65
67
 
@@ -95,31 +97,34 @@ tui-textfield {
95
97
  --t-padding: var(--tui-padding-s);
96
98
 
97
99
  border-radius: var(--tui-radius-m);
98
- gap: 0;
99
100
  font: var(--tui-font-ui-s);
100
101
  line-height: 1rem;
101
102
 
102
103
  &[data-icon-start] {
103
- --t-start: 1.25rem;
104
+ --t-start: 1.5rem;
104
105
  }
105
106
 
106
107
  &[data-icon-end] {
107
- --t-end: 1.25rem;
108
+ --t-end: 1.5rem;
108
109
  }
109
110
 
110
111
  &::before {
111
- margin-inline: -0.125rem 0.5rem;
112
112
  font-size: 1rem;
113
+ margin-inline: -0.25rem 0.25rem;
113
114
  }
114
115
 
115
116
  &::after {
116
- margin-inline-start: calc(0.625rem - var(--t-padding));
117
- margin-inline-end: calc(-0.125rem - var(--t-padding));
117
+ inline-size: calc(0.75rem + 2 * var(--t-padding));
118
+ margin-inline: 0 -0.5rem;
118
119
  font-size: 1rem;
119
120
  }
120
121
 
121
122
  & > .t-content {
122
- margin-inline-end: -0.375rem;
123
+ gap: 0;
124
+
125
+ > *:last-child {
126
+ margin-inline-end: -0.25rem;
127
+ }
123
128
  }
124
129
  }
125
130
 
@@ -134,7 +139,7 @@ tui-textfield {
134
139
  line-height: 1rem;
135
140
 
136
141
  &[data-icon-start] {
137
- --t-start: 1.75rem;
142
+ --t-start: 1.875rem;
138
143
  }
139
144
 
140
145
  &[data-icon-end] {
@@ -142,15 +147,15 @@ tui-textfield {
142
147
  }
143
148
 
144
149
  &::before {
145
- margin-inline: -0.125rem 0.125rem;
150
+ margin-inline: -0.125rem 0.5rem;
146
151
  }
147
152
 
148
153
  &::after {
149
- margin-inline-start: calc(0.25rem - var(--t-padding));
150
- margin-inline-end: calc(-0.125rem - var(--t-padding));
154
+ inline-size: calc(1.25rem + 2 * var(--t-padding));
155
+ margin-inline-start: calc(0.5rem - var(--t-padding));
151
156
  }
152
157
 
153
- & > .t-content {
158
+ & > .t-content > *:last-child {
154
159
  margin-inline-end: -0.125rem;
155
160
  }
156
161
  }
@@ -209,9 +214,10 @@ tui-textfield {
209
214
  border-radius: inherit;
210
215
  border-width: 0;
211
216
  overscroll-behavior: none;
212
- // StackBlitz changes "0rem" to "0" breaking calc
213
- padding-inline-start: calc(var(--t-start, ~'0rem') + var(--t-padding));
214
- padding-inline-end: calc(var(--t-end, ~'0rem') + var(--t-side, ~'0rem') + var(--t-padding));
217
+ padding-inline-start: calc(var(--t-start) + var(--t-padding));
218
+ padding-inline-end: calc(var(--t-end) + var(--t-side) + var(--t-padding));
219
+ white-space: nowrap;
220
+ overflow: hidden;
215
221
 
216
222
  &:is(input, textarea):read-only ~ .t-filler {
217
223
  display: none;
@@ -225,12 +231,11 @@ tui-textfield {
225
231
  &[inputmode='none'] {
226
232
  caret-color: transparent;
227
233
  }
228
- }
229
234
 
230
- & > .t-template {
231
- display: flex;
232
- block-size: 100%;
233
- align-items: center;
235
+ &::-webkit-inner-spin-button,
236
+ &::-webkit-outer-spin-button {
237
+ appearance: none;
238
+ }
234
239
  }
235
240
 
236
241
  &._with-template [tuiInput]:first-of-type {
@@ -300,7 +305,7 @@ tui-textfield {
300
305
  display: flex;
301
306
  block-size: var(--t-height);
302
307
  align-items: center;
303
- gap: inherit;
308
+ gap: 0.25rem;
304
309
  margin-inline-start: auto;
305
310
  isolation: isolate;
306
311
  border-radius: inherit;
@@ -342,11 +347,6 @@ tui-textfield {
342
347
 
343
348
  &:not([data-mode~='readonly']) {
344
349
  .appearance-focus({
345
- [tuiInput]::placeholder,
346
- [tuiInput]._empty {
347
- color: var(--tui-text-tertiary);
348
- }
349
-
350
350
  [tuiLabel] {
351
351
  color: var(--tui-text-primary) !important;
352
352
  font: var(--t-label-font);
@@ -18,7 +18,7 @@
18
18
  * @see-also
19
19
  * Label
20
20
  */
21
- [tuiTitle] {
21
+ [tuiTitle]:where(*&) {
22
22
  position: relative;
23
23
  display: flex;
24
24
  min-inline-size: 0;
@@ -64,14 +64,14 @@
64
64
  margin: 0;
65
65
  font: inherit;
66
66
  }
67
- }
68
67
 
69
- [tuiSubtitle] {
70
- font: var(--tui-font-ui-s);
71
- margin: 0;
68
+ [tuiSubtitle] {
69
+ font: var(--tui-font-ui-s);
70
+ margin: 0;
71
+ }
72
72
  }
73
73
 
74
- [tuiButton] [tuiTitle] {
74
+ [tuiButton]:where(*&) [tuiTitle] {
75
75
  margin-inline-end: auto;
76
76
 
77
77
  [tuiSubtitle] {
@@ -1,18 +1,15 @@
1
- @thumb-diameters: {
2
- @s: 0.5rem;
3
- @m: 0.75rem;
4
- };
5
-
6
1
  @track-inset: {
7
2
  @s: 0.625rem;
8
3
  @m: 0.75rem;
9
4
  @l: 1rem;
10
5
  };
11
6
 
12
- .tui-slider-ticks-labels(@thumb-size: m) {
13
- @thumb: @thumb-diameters[@@thumb-size];
7
+ @thumb-diameter: var(--tui-thumb-size, 0.75rem);
8
+ @thumb-radius: calc(@thumb-diameter / 2);
9
+ @track-thickness: max(calc(@thumb-radius - 0.25rem), 0.125rem);
14
10
 
15
- --t-offset: calc(@thumb / 2);
11
+ .tui-slider-ticks-labels() {
12
+ --t-offset: @thumb-radius;
16
13
 
17
14
  display: flex;
18
15
  font: var(--tui-font-body-s);
@@ -38,33 +35,33 @@
38
35
  }
39
36
 
40
37
  tui-range + & {
41
- --t-offset: @thumb;
38
+ --t-offset: @thumb-diameter;
42
39
  }
43
40
 
44
41
  /* TODO: add :has([tuiInputSlider]) */
45
42
  tui-textfield[data-size='l'] + & {
46
- --t-offset: calc(@track-inset[@l] + @thumb / 2);
43
+ --t-offset: calc(@track-inset[@l] + @thumb-radius);
47
44
  }
48
45
 
49
46
  /* TODO: add :has([tuiInputSlider]) */
50
47
  tui-textfield[data-size='m'] + & {
51
- --t-offset: calc(@track-inset[@m] + @thumb / 2);
48
+ --t-offset: calc(@track-inset[@m] + @thumb-radius);
52
49
  }
53
50
 
54
51
  /* TODO: add :has([tuiInputSlider]) */
55
52
  tui-textfield[data-size='s'] + & {
56
- --t-offset: calc(@track-inset[@s] + @thumb / 2);
53
+ --t-offset: calc(@track-inset[@s] + @thumb-radius);
57
54
  }
58
55
 
59
56
  tui-input-range[data-size='l'] + & {
60
- --t-offset: calc(@track-inset[@l] + @thumb);
57
+ --t-offset: calc(@track-inset[@l] + @thumb-diameter);
61
58
  }
62
59
 
63
60
  tui-input-range[data-size='m'] + & {
64
- --t-offset: calc(@track-inset[@m] + @thumb);
61
+ --t-offset: calc(@track-inset[@m] + @thumb-diameter);
65
62
  }
66
63
 
67
64
  tui-input-range[data-size='s'] + & {
68
- --t-offset: calc(@track-inset[@s] + @thumb);
65
+ --t-offset: calc(@track-inset[@s] + @thumb-diameter);
69
66
  }
70
67
  }
@@ -1,20 +1,15 @@
1
- $thumb-diameters: (
2
- 's': 0.5rem,
3
- 'm': 0.75rem,
4
- 'l': 0.75rem,
5
- );
6
-
7
1
  $track-inset: (
8
2
  's': 0.625rem,
9
3
  'm': 0.75rem,
10
4
  'l': 1rem,
11
5
  );
12
6
 
13
- // TODO(v5): use `l` by default (default size for new textfields)
14
- @mixin tui-slider-ticks-labels($input-size: m) {
15
- $thumb: map-get($thumb-diameters, $input-size);
7
+ $thumb-diameter: var(--tui-thumb-size, 0.75rem);
8
+ $thumb-radius: calc($thumb-diameter / 2);
9
+ $track-thickness: max(calc($thumb-radius - 0.25rem), 0.125rem);
16
10
 
17
- --t-offset: calc($thumb / 2);
11
+ @mixin tui-slider-ticks-labels() {
12
+ --t-offset: $thumb-radius;
18
13
 
19
14
  display: flex;
20
15
  font: var(--tui-font-body-s);
@@ -40,33 +35,33 @@ $track-inset: (
40
35
  }
41
36
 
42
37
  tui-range + & {
43
- --t-offset: $thumb;
38
+ --t-offset: $thumb-diameter;
44
39
  }
45
40
 
46
41
  /* TODO: add :has([tuiInputSlider]) */
47
42
  tui-textfield[data-size='l'] + & {
48
- --t-offset: calc(map-get($track-inset, 'l') + $thumb / 2);
43
+ --t-offset: calc(map-get($track-inset, 'l') + $thumb-radius);
49
44
  }
50
45
 
51
46
  /* TODO: add :has([tuiInputSlider]) */
52
47
  tui-textfield[data-size='m'] + & {
53
- --t-offset: calc(map-get($track-inset, 'm') + $thumb / 2);
48
+ --t-offset: calc(map-get($track-inset, 'm') + $thumb-radius);
54
49
  }
55
50
 
56
51
  /* TODO: add :has([tuiInputSlider]) */
57
52
  tui-textfield[data-size='s'] + & {
58
- --t-offset: calc(map-get($track-inset, 's') + $thumb / 2);
53
+ --t-offset: calc(map-get($track-inset, 's') + $thumb-radius);
59
54
  }
60
55
 
61
56
  tui-input-range[data-size='l'] + & {
62
- --t-offset: calc(map-get($track-inset, 'l') + $thumb);
57
+ --t-offset: calc(map-get($track-inset, 'l') + $thumb-diameter);
63
58
  }
64
59
 
65
60
  tui-input-range[data-size='m'] + & {
66
- --t-offset: calc(map-get($track-inset, 'm') + $thumb);
61
+ --t-offset: calc(map-get($track-inset, 'm') + $thumb-diameter);
67
62
  }
68
63
 
69
64
  tui-input-range[data-size='s'] + & {
70
- --t-offset: calc(map-get($track-inset, 's') + $thumb);
65
+ --t-offset: calc(map-get($track-inset, 's') + $thumb-diameter);
71
66
  }
72
67
  }
@@ -1,17 +1,3 @@
1
- /* TODO @deprecated remove in v5 */
2
- [tuiAppearance][data-appearance='link'] {
3
- color: var(--tui-text-action);
4
- background: transparent;
5
-
6
- .appearance-hover({
7
- color: var(--tui-text-action-hover);
8
- });
9
-
10
- .appearance-active({
11
- color: var(--tui-text-action-hover);
12
- });
13
- }
14
-
15
1
  [tuiAppearance][data-appearance='action'] {
16
2
  color: var(--tui-text-action);
17
3
  background: transparent;
@@ -3,14 +3,19 @@
3
3
  [tuiAppearance][data-appearance='floating'] {
4
4
  background: var(--tui-background-elevation-2);
5
5
  color: var(--tui-text-primary);
6
- box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.1);
6
+ box-shadow: var(--tui-shadow-small);
7
+
8
+ &::before,
9
+ &::after {
10
+ transition-property: color;
11
+ }
7
12
 
8
13
  .appearance-hover({
9
- box-shadow: 0 0.875rem 2.625rem rgba(0, 0, 0, 0.14);
14
+ box-shadow: var(--tui-shadow-small-hover);
10
15
  });
11
16
 
12
17
  .appearance-active({
13
18
  background: var(--tui-background-base-alt);
14
- box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.1);
19
+ box-shadow: var(--tui-shadow-small);
15
20
  });
16
21
  }
@@ -1,3 +1,6 @@
1
+ @import (inline, once) '@taiga-ui/design-tokens/palette/animation.css';
2
+ @import (inline, once) '@taiga-ui/design-tokens/palette/shadow.css';
3
+
1
4
  &:root,
2
5
  &:host {
3
6
  // Fonts
@@ -14,12 +17,12 @@
14
17
  // Body
15
18
  --tui-font-body-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(28 / 17) var(--tui-font-family-text);
16
19
  --tui-font-body-m: normal calc(var(--tui-font-offset) + 1rem) / calc(24 / 16) var(--tui-font-family-text);
17
- --tui-font-body-s: normal calc(var(--tui-font-offset) + 0.8125rem) / calc(20 / 13) var(--tui-font-family-text);
20
+ --tui-font-body-s: normal calc(var(--tui-font-offset) + 0.875rem) / calc(20 / 14) var(--tui-font-family-text);
18
21
  --tui-font-body-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(16 / 11) var(--tui-font-family-text);
19
22
  // Reduced
20
23
  --tui-font-ui-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(24 / 17) var(--tui-font-family-text);
21
24
  --tui-font-ui-m: normal calc(var(--tui-font-offset) + 1rem) / calc(20 / 16) var(--tui-font-family-text);
22
- --tui-font-ui-s: normal calc(var(--tui-font-offset) + 0.8125rem) / calc(16 / 13) var(--tui-font-family-text);
25
+ --tui-font-ui-s: normal calc(var(--tui-font-offset) + 0.875rem) / calc(16 / 14) var(--tui-font-family-text);
23
26
  --tui-font-ui-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(13 / 11) var(--tui-font-family-text);
24
27
  // Radii
25
28
  --tui-radius-xs: 0.25rem;
@@ -37,6 +40,7 @@
37
40
  --tui-padding-m: 0.75rem;
38
41
  --tui-padding-l: 1rem;
39
42
  // Misc
43
+ --tui-stroke-width: 0.125rem;
40
44
  --tui-duration: 0.3s;
41
45
  --tui-disabled-opacity: 0.56;
42
46
  }
package/tokens/i18n.d.ts CHANGED
@@ -7,6 +7,10 @@ export declare const TUI_MONTHS: InjectionToken<import("@angular/core").Signal<r
7
7
  * i18n 'close' word
8
8
  */
9
9
  export declare const TUI_CLOSE_WORD: InjectionToken<import("@angular/core").Signal<string>>;
10
+ /**
11
+ * i18n 'back' word
12
+ */
13
+ export declare const TUI_BACK_WORD: InjectionToken<import("@angular/core").Signal<string>>;
10
14
  /**
11
15
  * i18n 'clear' word
12
16
  */
package/tokens/index.d.ts CHANGED
@@ -13,6 +13,5 @@ export * from './media';
13
13
  export * from './number-format';
14
14
  export * from './reduced-motion';
15
15
  export * from './selection-stream';
16
- export * from './theme';
17
16
  export * from './validation-errors';
18
17
  export * from './viewport';
@@ -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;
package/tokens/theme.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export declare const TUI_THEME: InjectionToken<string>;