@taiga-ui/core 4.31.0 → 4.32.0-canary.358209e

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 (50) hide show
  1. package/components/fullscreen/fullscreen.component.d.ts +14 -0
  2. package/components/fullscreen/index.d.ts +1 -0
  3. package/components/index.d.ts +1 -0
  4. package/components/root/root.component.d.ts +6 -2
  5. package/components/textfield/select-like.directive.d.ts +2 -0
  6. package/components/textfield/textfield.component.d.ts +1 -1
  7. package/directives/dropdown/dropdown-open.directive.d.ts +3 -2
  8. package/directives/popup/index.d.ts +1 -0
  9. package/directives/popup/popups.component.d.ts +6 -0
  10. package/esm2022/components/dialog/dialog-close.service.mjs +7 -4
  11. package/esm2022/components/dialog/dialog.component.mjs +3 -3
  12. package/esm2022/components/fullscreen/fullscreen.component.mjs +67 -0
  13. package/esm2022/components/fullscreen/index.mjs +2 -0
  14. package/esm2022/components/fullscreen/taiga-ui-core-components-fullscreen.mjs +5 -0
  15. package/esm2022/components/index.mjs +2 -1
  16. package/esm2022/components/link/link.directive.mjs +2 -2
  17. package/esm2022/components/root/root.component.mjs +32 -12
  18. package/esm2022/components/textfield/select-like.directive.mjs +18 -3
  19. package/esm2022/components/textfield/textfield.component.mjs +3 -3
  20. package/esm2022/directives/appearance/appearance.directive.mjs +2 -2
  21. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +16 -9
  22. package/esm2022/directives/hint/hint.component.mjs +4 -4
  23. package/esm2022/directives/popup/index.mjs +2 -1
  24. package/esm2022/directives/popup/popups.component.mjs +20 -0
  25. package/fesm2022/taiga-ui-core-components-dialog.mjs +8 -5
  26. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +73 -0
  28. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +1 -0
  29. package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
  30. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-core-components-root.mjs +31 -11
  32. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-core-components-textfield.mjs +19 -4
  34. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-core-components.mjs +1 -0
  36. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-core-directives-appearance.mjs +2 -2
  38. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +14 -7
  40. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-core-directives-hint.mjs +3 -3
  42. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-core-directives-popup.mjs +18 -3
  44. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  45. package/package.json +10 -4
  46. package/styles/components/appearance.less +1 -1
  47. package/styles/components/link.less +14 -2
  48. package/styles/components/textfield.less +75 -29
  49. package/styles/theme/appearance/table.less +1 -1
  50. package/styles/theme/palette.less +2 -2
@@ -1,6 +1,7 @@
1
1
  @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
2
 
3
3
  tui-textfield {
4
+ .scrollbar-hidden();
4
5
  .transition(color);
5
6
 
6
7
  --t-height: var(--tui-height-l);
@@ -8,16 +9,16 @@ tui-textfield {
8
9
 
9
10
  position: relative;
10
11
  display: flex;
12
+ flex-wrap: wrap;
11
13
  align-items: center;
12
- pointer-events: none;
13
14
  cursor: pointer;
14
- block-size: var(--t-height);
15
+ min-block-size: var(--t-height);
15
16
  color: var(--tui-text-tertiary);
16
17
  padding: 0 var(--t-padding);
17
18
  border-radius: var(--tui-radius-l);
18
- font: var(--tui-font-text-m);
19
+ font: var(--tui-font-text-ui-m);
19
20
  box-sizing: border-box;
20
- gap: 0.25rem;
21
+ gap: 0 0.25rem;
21
22
 
22
23
  &[style*='--t-icon-start:'] {
23
24
  --t-left: 2.25rem;
@@ -27,13 +28,40 @@ tui-textfield {
27
28
  --t-right: 2.25rem;
28
29
  }
29
30
 
30
- input,
31
- select {
32
- font: var(--tui-font-text-m);
31
+ &::-webkit-resizer {
32
+ border: 0.25rem solid transparent;
33
+ inline-size: 0.5rem;
34
+ block-size: 0.5rem;
35
+ box-sizing: content-box;
36
+ color: var(--tui-text-tertiary);
37
+ background: linear-gradient(
38
+ -45deg,
39
+ transparent,
40
+ transparent 0.125rem,
41
+ currentColor 0.125rem,
42
+ currentColor 0.1875rem,
43
+ transparent 0.1875rem,
44
+ transparent 0.25rem,
45
+ currentColor 0.25rem,
46
+ currentColor 0.3125rem,
47
+ transparent 0.35rem
48
+ );
49
+ background-clip: content-box;
50
+ }
33
51
 
34
- &[inputmode='none'] {
35
- caret-color: transparent;
36
- }
52
+ label,
53
+ .t-content,
54
+ .t-template {
55
+ pointer-events: none;
56
+ }
57
+
58
+ input,
59
+ select,
60
+ textarea {
61
+ font: var(--tui-font-text-ui-m);
62
+ resize: none;
63
+ padding-block-start: 1.125rem;
64
+ padding-block-end: 1.125rem;
37
65
  }
38
66
 
39
67
  &[data-size='s'] {
@@ -42,7 +70,7 @@ tui-textfield {
42
70
 
43
71
  border-radius: var(--tui-radius-m);
44
72
  gap: 0;
45
- font: var(--tui-font-text-s);
73
+ font: var(--tui-font-text-ui-s);
46
74
 
47
75
  &[style*='--t-icon-start:'] {
48
76
  --t-left: 1.25rem;
@@ -63,8 +91,11 @@ tui-textfield {
63
91
  }
64
92
 
65
93
  input,
66
- select {
67
- font: var(--tui-font-text-s);
94
+ select,
95
+ textarea {
96
+ font: var(--tui-font-text-ui-s);
97
+ padding-block-start: 0.5rem;
98
+ padding-block-end: 0.5rem;
68
99
  }
69
100
 
70
101
  .t-content {
@@ -77,7 +108,7 @@ tui-textfield {
77
108
  --t-padding: var(--tui-padding-m);
78
109
 
79
110
  border-radius: var(--tui-radius-m);
80
- font: var(--tui-font-text-s);
111
+ font: var(--tui-font-text-ui-s);
81
112
 
82
113
  &[style*='--t-icon-start:'] {
83
114
  --t-left: 1.75rem;
@@ -96,8 +127,11 @@ tui-textfield {
96
127
  }
97
128
 
98
129
  input,
99
- select {
100
- font: var(--tui-font-text-s);
130
+ select,
131
+ textarea {
132
+ font: var(--tui-font-text-ui-s);
133
+ padding-block-start: 0.875rem;
134
+ padding-block-end: 0.875rem;
101
135
  }
102
136
 
103
137
  .t-content {
@@ -108,6 +142,7 @@ tui-textfield {
108
142
  /*
109
143
  TODO: refactor to the following way after Chrome 105+ & Safari 15.4+
110
144
  &:hover:has(input:not(:read-only)),
145
+ &:hover:has(textarea:not(:read-only)),
111
146
  &:hover:has(select:not([data-mode='readonly'])) {
112
147
  color: var(--tui-text-secondary);
113
148
  }
@@ -116,6 +151,7 @@ tui-textfield {
116
151
  color: var(--tui-text-secondary);
117
152
 
118
153
  &:has(input:read-only),
154
+ &:has(textarea:read-only),
119
155
  &:has(select[data-mode~='readonly']) {
120
156
  color: var(--tui-text-tertiary);
121
157
  }
@@ -141,9 +177,11 @@ tui-textfield {
141
177
 
142
178
  &:has(label:not(:empty)) {
143
179
  .t-template,
144
- input:first-of-type,
145
- select:defined {
146
- padding-top: calc(var(--t-height) / 3);
180
+ input:not([type='range']),
181
+ select:defined,
182
+ textarea:defined {
183
+ padding-block-start: calc(var(--t-height) / 3);
184
+ padding-block-end: 0;
147
185
 
148
186
  &::placeholder,
149
187
  &._empty {
@@ -155,9 +193,11 @@ tui-textfield {
155
193
  // TODO: Fallback until Safari 15.4
156
194
  &._with-label {
157
195
  .t-template,
158
- input:first-of-type,
159
- select:defined {
196
+ input:not([type='range']),
197
+ select:defined,
198
+ textarea:defined {
160
199
  padding-top: calc(var(--t-height) / 3);
200
+ padding-block-end: 0;
161
201
 
162
202
  &::placeholder,
163
203
  &._empty {
@@ -168,16 +208,16 @@ tui-textfield {
168
208
 
169
209
  .t-template,
170
210
  input:defined,
171
- select:defined {
211
+ select:defined,
212
+ textarea:defined {
172
213
  .fullsize();
173
214
 
174
215
  appearance: none;
175
216
  box-sizing: border-box;
176
217
  border-radius: inherit;
177
- padding: inherit;
178
218
  border: none;
179
- text-indent: var(--t-left, 0);
180
219
  // StackBlitz changes "0rem" to "0" breaking calc
220
+ padding-inline-start: calc(var(--t-left, ~'0rem') + var(--t-padding));
181
221
  padding-inline-end: calc(var(--t-right, ~'0rem') + var(--t-side) + var(--t-padding));
182
222
  }
183
223
 
@@ -187,13 +227,15 @@ tui-textfield {
187
227
  color: var(--tui-text-primary);
188
228
  }
189
229
 
190
- &._with-template input:first-of-type,
191
- &._with-template select {
230
+ &._with-template input:not([type='range']),
231
+ &._with-template select,
232
+ &._with-template textarea {
192
233
  color: transparent !important;
193
234
  }
194
235
 
195
- input:first-of-type,
196
- select:defined {
236
+ input:not([type='range']),
237
+ select:defined,
238
+ textarea:defined {
197
239
  pointer-events: auto;
198
240
  background: transparent;
199
241
 
@@ -252,14 +294,17 @@ tui-textfield {
252
294
  });
253
295
  }
254
296
 
255
- label:not([data-orientation='vertical']) {
297
+ // Increasing specificity to override all other styles
298
+ [tuiLabel][tuiLabel][tuiLabel] {
256
299
  .transition(all);
257
300
  .text-overflow();
258
301
 
259
302
  position: relative;
260
303
  display: block;
261
304
  flex: 1;
305
+ align-self: flex-start;
262
306
  font-size: inherit;
307
+ line-height: var(--t-height);
263
308
  }
264
309
 
265
310
  label:defined,
@@ -279,6 +324,7 @@ tui-textfield {
279
324
 
280
325
  .t-content {
281
326
  display: flex;
327
+ block-size: var(--t-height);
282
328
  align-items: center;
283
329
  gap: inherit;
284
330
  margin-inline-start: auto;
@@ -17,7 +17,7 @@ TODO: remove :not([tuiWrapper]) after legacy controls deletion
17
17
  background: transparent;
18
18
  border: none;
19
19
  outline: none;
20
- padding-bottom: calc(var(--t-row-height) - var(--t-height));
20
+ border-bottom: calc(var(--t-row-height) - var(--t-height)) solid transparent;
21
21
 
22
22
  &:not(._empty) {
23
23
  color: var(--tui-text-primary);
@@ -12,8 +12,8 @@
12
12
  --tui-background-accent-opposite-hover: #f6f6f6;
13
13
  --tui-background-accent-opposite-pressed: #ededed;
14
14
  --tui-background-elevation-1: #292929;
15
- --tui-background-elevation-2: #333;
16
- --tui-background-elevation-3: #333;
15
+ --tui-background-elevation-2: #2f2f2f;
16
+ --tui-background-elevation-3: #373737;
17
17
  // Other
18
18
  --tui-service-autofill-background: rgb(85, 74, 42);
19
19
  --tui-border-normal: rgba(255, 255, 255, 0.14);