@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
@@ -1,358 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- tui-textfield:where(*&) {
4
- .scrollbar-hidden();
5
- .transition(color);
6
-
7
- --t-height: var(--tui-height-l);
8
- --t-padding: var(--tui-padding-l);
9
- --t-label-y: -0.75rem;
10
- --t-label-font: var(--tui-font-body-s);
11
- --t-end: ~'0rem';
12
- --t-start: ~'0rem';
13
-
14
- position: relative;
15
- display: flex;
16
- flex-wrap: wrap;
17
- align-items: flex-start;
18
- min-block-size: var(--t-height);
19
- padding: 0 var(--t-padding);
20
- border-radius: var(--tui-radius-l);
21
- font: var(--tui-font-ui-m);
22
- line-height: 1.25rem;
23
- box-sizing: border-box;
24
- gap: 0 0.25rem;
25
- isolation: isolate;
26
-
27
- &[tuiAppearance] {
28
- outline: none;
29
-
30
- &[data-appearance=''] {
31
- color: var(--tui-text-tertiary);
32
-
33
- &:not([data-mode~='readonly']) {
34
- .appearance-hover({
35
- color: var(--tui-text-secondary);
36
- });
37
- }
38
- }
39
- }
40
-
41
- &[data-icon-start] {
42
- --t-start: 2.25rem;
43
- }
44
-
45
- &[data-icon-end] {
46
- --t-end: 2.25rem;
47
- }
48
-
49
- &[tuiIcons] {
50
- &::before {
51
- z-index: 1;
52
- block-size: var(--t-height);
53
- margin-inline-end: 0.5rem;
54
- pointer-events: none;
55
- }
56
-
57
- &::after {
58
- position: relative;
59
- block-size: var(--t-height);
60
- cursor: pointer;
61
- border-inline: var(--t-padding) solid transparent;
62
- margin: 0 calc(-1 * var(--t-padding));
63
- }
64
- }
65
-
66
- &::-webkit-resizer {
67
- border: 0.25rem solid transparent;
68
- inline-size: 0.5rem;
69
- block-size: 0.5rem;
70
- box-sizing: content-box;
71
- color: var(--tui-text-tertiary);
72
- background: linear-gradient(
73
- -45deg,
74
- transparent,
75
- transparent 0.125rem,
76
- currentColor 0.125rem,
77
- currentColor 0.1875rem,
78
- transparent 0.1875rem,
79
- transparent 0.25rem,
80
- currentColor 0.25rem,
81
- currentColor 0.3125rem,
82
- transparent 0.35rem
83
- );
84
- background-clip: content-box;
85
- }
86
-
87
- [tuiLabel],
88
- & > .t-content,
89
- & > .t-template {
90
- pointer-events: none;
91
- }
92
-
93
- &[data-size='s'] {
94
- --t-height: var(--tui-height-s);
95
- --t-padding: var(--tui-padding-s);
96
-
97
- border-radius: var(--tui-radius-m);
98
- gap: 0;
99
- font: var(--tui-font-ui-s);
100
- line-height: 1rem;
101
-
102
- &[data-icon-start] {
103
- --t-start: 1.25rem;
104
- }
105
-
106
- &[data-icon-end] {
107
- --t-end: 1.25rem;
108
- }
109
-
110
- &::before {
111
- margin-inline: -0.125rem 0.5rem;
112
- font-size: 1rem;
113
- }
114
-
115
- &::after {
116
- margin-inline-start: calc(0.625rem - var(--t-padding));
117
- margin-inline-end: calc(-0.125rem - var(--t-padding));
118
- font-size: 1rem;
119
- }
120
-
121
- & > .t-content {
122
- margin-inline-end: -0.375rem;
123
- }
124
- }
125
-
126
- &[data-size='m'] {
127
- --t-height: var(--tui-height-m);
128
- --t-padding: var(--tui-padding-m);
129
- --t-label-font: var(--tui-font-body-xs);
130
- --t-label-y: -0.5625rem;
131
-
132
- border-radius: var(--tui-radius-m);
133
- font: var(--tui-font-ui-s);
134
- line-height: 1rem;
135
-
136
- &[data-icon-start] {
137
- --t-start: 1.75rem;
138
- }
139
-
140
- &[data-icon-end] {
141
- --t-end: 1.75rem;
142
- }
143
-
144
- &::before {
145
- margin-inline: -0.125rem 0.125rem;
146
- }
147
-
148
- &::after {
149
- margin-inline-start: calc(0.25rem - var(--t-padding));
150
- margin-inline-end: calc(-0.125rem - var(--t-padding));
151
- }
152
-
153
- & > .t-content {
154
- margin-inline-end: -0.125rem;
155
- }
156
- }
157
-
158
- &[data-size='l'] {
159
- --t-label: -0.7rem;
160
- }
161
-
162
- &:is(._disabled, [data-state='disabled']) {
163
- pointer-events: none;
164
- opacity: var(--tui-disabled-opacity);
165
-
166
- [tuiAppearance]:is(._disabled, :disabled, [data-state='disabled']) {
167
- opacity: 1;
168
- }
169
-
170
- tui-icon {
171
- display: none;
172
- }
173
- }
174
-
175
- &._with-label {
176
- & > .t-template,
177
- .t-filler,
178
- [tuiInput] {
179
- padding-block-start: calc(var(--t-height) / 3);
180
- padding-block-end: 0;
181
- }
182
-
183
- &:is(:not([data-focus='true']), [data-mode~='readonly']) {
184
- & > .t-template,
185
- [tuiInput] {
186
- &::placeholder,
187
- &._empty {
188
- color: transparent;
189
- }
190
- }
191
- }
192
- }
193
-
194
- & > .t-template,
195
- .t-filler,
196
- [tuiInput] {
197
- position: absolute;
198
- inset-block-start: 0;
199
- inset-inline: 0;
200
- inline-size: auto;
201
- block-size: 100%;
202
- appearance: none;
203
- background: none;
204
- font: inherit;
205
- resize: none;
206
- outline: none;
207
- color: var(--tui-text-primary);
208
- box-sizing: border-box;
209
- border-radius: inherit;
210
- border-width: 0;
211
- 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));
215
-
216
- &:is(input, textarea):read-only ~ .t-filler {
217
- display: none;
218
- }
219
-
220
- &:disabled {
221
- animation: tuiPresent 1s infinite;
222
- opacity: 1;
223
- }
224
-
225
- &[inputmode='none'] {
226
- caret-color: transparent;
227
- }
228
- }
229
-
230
- & > .t-template {
231
- display: flex;
232
- block-size: 100%;
233
- align-items: center;
234
- }
235
-
236
- &._with-template [tuiInput]:first-of-type {
237
- color: transparent !important;
238
- }
239
-
240
- [tuiInput]:-webkit-autofill,
241
- [tuiInput][chrome-autofilled], /* Chrome on IOS */
242
- [tuiInput]:not(._empty, :placeholder-shown),
243
- &[multi][multi]:not(._empty) {
244
- [tuiLabel],
245
- &:not(tui-textfield) ~ [tuiLabel] {
246
- font: var(--t-label-font);
247
- line-height: var(--t-height);
248
- transform: translateY(var(--t-label-y));
249
- }
250
- }
251
-
252
- // Increasing specificity to override all other styles
253
- [tuiLabel][tuiLabel][tuiLabel] {
254
- .transition(all);
255
- .text-overflow();
256
-
257
- position: relative;
258
- display: block;
259
- flex: 1;
260
- align-self: flex-start;
261
- font-size: inherit;
262
- user-select: none;
263
- line-height: var(--t-height);
264
- transition-duration: inherit;
265
- }
266
-
267
- [tuiLabel],
268
- [tuiInput]::placeholder,
269
- [tuiInput]._empty {
270
- color: var(--tui-text-secondary);
271
- }
272
-
273
- select {
274
- option[value='']:disabled {
275
- // Hide placeholder from native datalist (Windows OS only)
276
- color: transparent;
277
- }
278
-
279
- optgroup,
280
- option {
281
- // Windows OS only
282
- background-color: var(--tui-background-elevation-3);
283
- }
284
-
285
- optgroup,
286
- option:not(:disabled) {
287
- // In Windows OS native options inherit color of host <select>
288
- color: var(--tui-text-primary);
289
- }
290
- }
291
-
292
- button,
293
- a,
294
- tui-icon {
295
- pointer-events: auto;
296
- }
297
-
298
- & > .t-content {
299
- z-index: 1;
300
- display: flex;
301
- block-size: var(--t-height);
302
- align-items: center;
303
- gap: inherit;
304
- margin-inline-start: auto;
305
- isolation: isolate;
306
- border-radius: inherit;
307
- }
308
-
309
- textarea ~ .t-content {
310
- min-inline-size: 0.5rem;
311
- }
312
-
313
- &:is([data-mode~='readonly'], [data-state='disabled'], ._empty) [tuiButtonX],
314
- [tuiInput]._empty ~ .t-content [tuiButtonX],
315
- [tuiInput]:disabled ~ .t-content [tuiButtonX] {
316
- display: none;
317
- }
318
-
319
- .t-filler {
320
- pointer-events: none !important;
321
- color: var(--tui-text-tertiary);
322
- }
323
-
324
- [tuiFluidTypography] {
325
- font-weight: bold;
326
- }
327
-
328
- [tuiSelectLike]:not(:read-only) {
329
- cursor: pointer;
330
- }
331
-
332
- &:has(input[type='tel']) {
333
- direction: ltr;
334
- }
335
-
336
- .appearance-invalid({
337
- [tuiInput]:not(._empty) ~ [tuiLabel],
338
- &[multi]:not(._empty) [tuiLabel] {
339
- color: var(--tui-text-negative);
340
- }
341
- });
342
-
343
- &:not([data-mode~='readonly']) {
344
- .appearance-focus({
345
- [tuiInput]::placeholder,
346
- [tuiInput]._empty {
347
- color: var(--tui-text-tertiary);
348
- }
349
-
350
- [tuiLabel] {
351
- color: var(--tui-text-primary) !important;
352
- font: var(--t-label-font);
353
- line-height: var(--t-height);
354
- transform: translateY(var(--t-label-y));
355
- }
356
- });
357
- }
358
- }
@@ -1,80 +0,0 @@
1
- /**
2
- * @name Title
3
- * @selector [tuiTitle], [tuiSubtitle]
4
- *
5
- * @description
6
- * Basic layout block for titles and subtitles
7
- * Often used by other more complex elements
8
- *
9
- * @attributes
10
- * data-size — optional size ('s' | 'm' | 'l')
11
- *
12
- * @example
13
- * <h2 tuiTitle>
14
- * Title
15
- * <span tuiSubtitle>Subtitle</span>
16
- * </h2>
17
- *
18
- * @see-also
19
- * Label
20
- */
21
- [tuiTitle]:where(*&) {
22
- position: relative;
23
- display: flex;
24
- min-inline-size: 0;
25
- flex-direction: column;
26
- text-align: start;
27
- gap: 0.25rem;
28
- margin: 0;
29
- font: var(--tui-font-ui-m);
30
-
31
- &[data-size='s'] {
32
- gap: 0.125rem;
33
- font: var(--tui-font-body-s);
34
-
35
- [tuiSubtitle] {
36
- font: var(--tui-font-body-xs);
37
- }
38
- }
39
-
40
- &[data-size='m'] {
41
- gap: 0.125rem;
42
- font: var(--tui-font-heading-h5);
43
-
44
- [tuiSubtitle] {
45
- font: var(--tui-font-body-m);
46
- }
47
- }
48
-
49
- &[data-size='l'] {
50
- gap: 0.5rem;
51
- font: var(--tui-font-heading-h3);
52
-
53
- [tuiSubtitle] {
54
- font: var(--tui-font-body-m);
55
- }
56
- }
57
-
58
- h1,
59
- h2,
60
- h3,
61
- h4,
62
- h5,
63
- h6 {
64
- margin: 0;
65
- font: inherit;
66
- }
67
-
68
- [tuiSubtitle] {
69
- font: var(--tui-font-ui-s);
70
- margin: 0;
71
- }
72
- }
73
-
74
- [tuiButton]:where(*&) [tuiTitle] {
75
- margin-inline-end: auto;
76
-
77
- [tuiSubtitle] {
78
- color: var(--tui-text-secondary);
79
- }
80
- }
@@ -1,56 +0,0 @@
1
- @import 'mixins.less';
2
-
3
- .appearance-hover(@content) {
4
- .interactive({
5
- @media @tui-mouse {
6
- &:hover:not([data-state]) {
7
- @content();
8
- }
9
- }
10
- });
11
-
12
- &[data-state='hover'] {
13
- @content();
14
- }
15
- }
16
-
17
- .appearance-active(@content) {
18
- .interactive({
19
- &:active:not([data-state]) {
20
- @content();
21
- }
22
- });
23
-
24
- &[data-state='active'] {
25
- @content();
26
- }
27
- }
28
-
29
- .appearance-disabled(@content) {
30
- &:disabled:not([data-state]),
31
- &[data-state='disabled'] {
32
- @content();
33
- }
34
- }
35
-
36
- .appearance-focus(@content) {
37
- &:focus-visible:not([data-focus='false']) {
38
- @content();
39
- }
40
-
41
- &[data-focus='true'] {
42
- @content();
43
- }
44
- }
45
-
46
- .appearance-invalid(@content) {
47
- &:is([data-mode~='invalid'], .tui-invalid, :invalid):not(
48
- [data-mode~='readonly'],
49
- [data-mode~='valid'],
50
- [data-state='disabled'],
51
- :disabled,
52
- ._disabled
53
- ) {
54
- @content();
55
- }
56
- }
@@ -1,57 +0,0 @@
1
- @import 'mixins.scss';
2
- @import '../variables/media.scss';
3
-
4
- @mixin appearance-hover {
5
- @include interactive {
6
- @media ($tui-mouse) {
7
- &:hover:not([data-state]) {
8
- @content;
9
- }
10
- }
11
- }
12
-
13
- &[data-state='hover'] {
14
- @content;
15
- }
16
- }
17
-
18
- @mixin appearance-active {
19
- @include interactive {
20
- &:active:not([data-state]) {
21
- @content;
22
- }
23
- }
24
-
25
- &[data-state='active'] {
26
- @content;
27
- }
28
- }
29
-
30
- @mixin appearance-disabled {
31
- &:disabled:not([data-state]),
32
- &[data-state='disabled'] {
33
- @content;
34
- }
35
- }
36
-
37
- @mixin appearance-focus {
38
- &:focus-visible:not([data-focus='false']) {
39
- @content;
40
- }
41
-
42
- &[data-focus='true'] {
43
- @content;
44
- }
45
- }
46
-
47
- @mixin appearance-invalid {
48
- &:is([data-mode~='invalid'], .tui-invalid, :invalid):not(
49
- [data-mode~='readonly'],
50
- [data-mode~='valid'],
51
- [data-state='disabled'],
52
- :disabled,
53
- ._disabled
54
- ) {
55
- @content;
56
- }
57
- }
@@ -1,23 +0,0 @@
1
- .firefox-only(@ruleset) {
2
- @supports (-moz-appearance: none) {
3
- @ruleset();
4
- }
5
- }
6
-
7
- .safari-only(@ruleset) {
8
- @supports (-webkit-hyphens: none) {
9
- @ruleset();
10
- }
11
- }
12
-
13
- .ios-only(@ruleset) {
14
- @supports (-webkit-touch-callout: none) {
15
- @ruleset();
16
- }
17
- }
18
-
19
- .chrome-only(@ruleset) {
20
- @supports (not (-moz-appearance: none)) and (not (-webkit-hyphens: none)) {
21
- @ruleset();
22
- }
23
- }
@@ -1,23 +0,0 @@
1
- @mixin firefox-only {
2
- @supports (-moz-appearance: none) {
3
- @content;
4
- }
5
- }
6
-
7
- @mixin safari-only {
8
- @supports (-webkit-hyphens: none) {
9
- @content;
10
- }
11
- }
12
-
13
- @mixin ios-only {
14
- @supports (-webkit-touch-callout: none) {
15
- @content;
16
- }
17
- }
18
-
19
- @mixin chrome-only {
20
- @supports (not (-moz-appearance: none)) and (not (-webkit-hyphens: none)) {
21
- @content;
22
- }
23
- }