igniteui-angular 20.0.1 → 20.0.3

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 (96) hide show
  1. package/fesm2022/igniteui-angular.mjs +193 -27
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/index.d.ts +5000 -4925
  4. package/lib/core/styles/components/_common/_igx-vhelper.scss +1 -0
  5. package/lib/core/styles/components/action-strip/_action-strip-theme.scss +2 -7
  6. package/lib/core/styles/components/avatar/_avatar-theme.scss +7 -8
  7. package/lib/core/styles/components/badge/_badge-theme.scss +3 -8
  8. package/lib/core/styles/components/banner/_banner-theme.scss +6 -7
  9. package/lib/core/styles/components/bottom-nav/_bottom-nav-theme.scss +17 -28
  10. package/lib/core/styles/components/button/_button-theme.scss +219 -158
  11. package/lib/core/styles/components/button/_contained-button-theme.scss +302 -0
  12. package/lib/core/styles/components/button/_fab-button-theme.scss +296 -0
  13. package/lib/core/styles/components/button/_flat-button-theme.scss +356 -0
  14. package/lib/core/styles/components/button/_outlined-button-theme.scss +419 -0
  15. package/lib/core/styles/components/button-group/_button-group-theme.scss +113 -29
  16. package/lib/core/styles/components/calendar/_calendar-theme.scss +502 -112
  17. package/lib/core/styles/components/card/_card-theme.scss +5 -16
  18. package/lib/core/styles/components/carousel/_carousel-theme.scss +103 -23
  19. package/lib/core/styles/components/checkbox/_checkbox-component.scss +1 -1
  20. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +63 -11
  21. package/lib/core/styles/components/chip/_chip-theme.scss +64 -47
  22. package/lib/core/styles/components/column-actions/_column-actions-theme.scss +3 -8
  23. package/lib/core/styles/components/combo/_combo-theme.scss +61 -12
  24. package/lib/core/styles/components/dialog/_dialog-theme.scss +9 -12
  25. package/lib/core/styles/components/divider/_divider-theme.scss +1 -6
  26. package/lib/core/styles/components/drop-down/_drop-down-theme.scss +52 -32
  27. package/lib/core/styles/components/expansion-panel/_expansion-panel-theme.scss +18 -13
  28. package/lib/core/styles/components/grid/_grid-theme.scss +115 -94
  29. package/lib/core/styles/components/grid/_pivot-data-selector-theme.scss +1 -6
  30. package/lib/core/styles/components/grid-summary/_grid-summary-theme.scss +12 -13
  31. package/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +7 -12
  32. package/lib/core/styles/components/highlight/highlight-theme.scss +2 -3
  33. package/lib/core/styles/components/icon/_icon-theme.scss +0 -1
  34. package/lib/core/styles/components/icon-button/_contained-icon-button-theme.scss +196 -0
  35. package/lib/core/styles/components/icon-button/_flat-icon-button-theme.scss +188 -0
  36. package/lib/core/styles/components/icon-button/_icon-button-theme.scss +45 -32
  37. package/lib/core/styles/components/icon-button/_outlined-icon-button-theme.scss +232 -0
  38. package/lib/core/styles/components/input/_input-group-component.scss +30 -0
  39. package/lib/core/styles/components/input/_input-group-theme.scss +341 -26
  40. package/lib/core/styles/components/label/_label-theme.scss +2 -4
  41. package/lib/core/styles/components/list/_list-theme.scss +42 -66
  42. package/lib/core/styles/components/navbar/_navbar-theme.scss +25 -15
  43. package/lib/core/styles/components/navdrawer/_navdrawer-theme.scss +24 -22
  44. package/lib/core/styles/components/overlay/_overlay-theme.scss +0 -1
  45. package/lib/core/styles/components/paginator/_paginator-theme.scss +2 -7
  46. package/lib/core/styles/components/progress/circular/_circular-theme.scss +3 -8
  47. package/lib/core/styles/components/progress/linear/_linear-theme.scss +1 -6
  48. package/lib/core/styles/components/query-builder/_query-builder-theme.scss +28 -11
  49. package/lib/core/styles/components/radio/_radio-theme.scss +54 -10
  50. package/lib/core/styles/components/ripple/_ripple-theme.scss +0 -1
  51. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +0 -1
  52. package/lib/core/styles/components/select/_select-theme.scss +35 -7
  53. package/lib/core/styles/components/slider/_slider-theme.scss +92 -7
  54. package/lib/core/styles/components/snackbar/_snackbar-theme.scss +3 -8
  55. package/lib/core/styles/components/splitter/_splitter-theme.scss +15 -8
  56. package/lib/core/styles/components/stepper/_stepper-theme.scss +190 -22
  57. package/lib/core/styles/components/switch/_switch-theme.scss +112 -8
  58. package/lib/core/styles/components/tabs/_tabs-theme.scss +124 -56
  59. package/lib/core/styles/components/time-picker/_time-picker-theme.scss +35 -18
  60. package/lib/core/styles/components/toast/_toast-theme.scss +9 -10
  61. package/lib/core/styles/components/tooltip/_tooltip-theme.scss +2 -7
  62. package/lib/core/styles/components/tree/_tree-theme.scss +33 -10
  63. package/lib/core/styles/components/watermark/_watermark-theme.scss +0 -1
  64. package/lib/core/styles/themes/_core.scss +6 -0
  65. package/lib/core/styles/themes/generators/_base.scss +146 -58
  66. package/migrations/migration-collection.json +5 -0
  67. package/migrations/update-20_0_2/changes/theme-changes.json +11 -0
  68. package/migrations/update-20_0_2/index.d.ts +3 -0
  69. package/migrations/update-20_0_2/index.js +18 -0
  70. package/package.json +1 -1
  71. package/styles/igniteui-angular-dark.css +1 -1
  72. package/styles/igniteui-angular.css +1 -1
  73. package/styles/igniteui-bootstrap-dark.css +1 -1
  74. package/styles/igniteui-bootstrap-light.css +1 -1
  75. package/styles/igniteui-dark-green.css +1 -1
  76. package/styles/igniteui-fluent-dark-excel.css +1 -1
  77. package/styles/igniteui-fluent-dark-word.css +1 -1
  78. package/styles/igniteui-fluent-dark.css +1 -1
  79. package/styles/igniteui-fluent-light-excel.css +1 -1
  80. package/styles/igniteui-fluent-light-word.css +1 -1
  81. package/styles/igniteui-fluent-light.css +1 -1
  82. package/styles/igniteui-indigo-dark.css +1 -1
  83. package/styles/igniteui-indigo-light.css +1 -1
  84. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  85. package/styles/maps/igniteui-angular.css.map +1 -1
  86. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  87. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  88. package/styles/maps/igniteui-dark-green.css.map +1 -1
  89. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  90. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  91. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  92. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  93. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  94. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  95. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  96. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -34,7 +34,6 @@
34
34
  /// @param {Color} $idle-bottom-line-color [null] - The bottom line and border colors in the idle state.
35
35
  /// @param {Color} $hover-bottom-line-color [null] - The bottom line and border colors in the hover state.
36
36
  /// @param {Color} $focused-bottom-line-color [null] - The bottom line and border colors in the focused state.
37
- /// @param {Color} $interim-bottom-line-color [null] - The bottom line and border colors during the to-focused transition.
38
37
  /// @param {Color} $disabled-bottom-line-color [null] - The bottom line and border colors in the disabled state.
39
38
  /// @param {Color} $border-color [null] - The border color for input groups of type border and fluent.
40
39
  /// @param {Color} $hover-border-color [null] - The hover input border for input groups of type border and fluent.
@@ -86,7 +85,6 @@
86
85
  $idle-bottom-line-color: null,
87
86
  $hover-bottom-line-color: null,
88
87
  $focused-bottom-line-color: null,
89
- $interim-bottom-line-color: null,
90
88
  $disabled-bottom-line-color: null,
91
89
 
92
90
  $border-color: null,
@@ -141,24 +139,247 @@
141
139
  }
142
140
 
143
141
  $theme: digest-schema($input-group-schema);
142
+ $variant: map.get($theme, '_meta', 'theme');
143
+
144
144
  $search-resting-elevation: map.get($input-group-schema, 'search-resting-elevation');
145
145
  $search-hover-elevation: map.get($input-group-schema, 'search-hover-elevation');
146
146
  $search-disabled-elevation: map.get($input-group-schema, 'search-disabled-elevation');
147
147
 
148
- @if not($placeholder-color) and $box-background {
149
- $placeholder-color: text-contrast($box-background);
148
+ @if $variant == 'material' {
149
+ @if not($box-background-hover) and $box-background {
150
+ $box-background-hover: var(--box-background);
151
+ }
152
+
153
+ @if not($box-background-focus) and $box-background {
154
+ $box-background-focus: hsl(from var(--box-background) h s calc(l * 0.9));
155
+ }
156
+
157
+ @if not($placeholder-color) and $box-background {
158
+ $placeholder-color: hsla(from adaptive-contrast(var(--box-background)) h s l / 0.9);
159
+ }
160
+
161
+ @if not($hover-placeholder-color) and $box-background-hover {
162
+ $hover-placeholder-color: hsla(from adaptive-contrast(var(--box-background-hover)) h s l / 0.9);
163
+ }
164
+
165
+ @if not($idle-text-color) and $box-background {
166
+ $idle-text-color: adaptive-contrast(var(--box-background));
167
+ }
168
+
169
+ @if not($filled-text-color) and $box-background {
170
+ $filled-text-color: adaptive-contrast(var(--box-background));
171
+ }
172
+
173
+ @if not($filled-text-hover-color) and $box-background {
174
+ $filled-text-hover-color: adaptive-contrast(var(--box-background));
175
+ }
176
+
177
+ @if not($focused-text-color) and $box-background-focus {
178
+ $focused-text-color: adaptive-contrast(var(--box-background-focus));
179
+ }
180
+
181
+ @if not($idle-secondary-color) and $box-background {
182
+ $idle-secondary-color: hsla(from adaptive-contrast(var(--box-background)) h s l / 0.9);
183
+ }
184
+
185
+ @if not($input-prefix-color) and $box-background {
186
+ $input-prefix-color: hsla(from adaptive-contrast(var(--box-background)) h s l / 0.9);
187
+ }
188
+
189
+ @if not($input-prefix-color--filled) and $box-background {
190
+ $input-prefix-color--filled: adaptive-contrast(var(--box-background));
191
+ }
192
+
193
+ @if not($input-prefix-color--focused) and $box-background-focus {
194
+ $input-prefix-color--focused: adaptive-contrast(var(--box-background-focus));
195
+ }
196
+
197
+ @if not($input-suffix-color) and $box-background {
198
+ $input-suffix-color: hsla(from adaptive-contrast(var(--box-background)) h s l / 0.9);
199
+ }
200
+
201
+ @if not($input-suffix-color--filled) and $box-background {
202
+ $input-suffix-color--filled: adaptive-contrast(var(--box-background));
203
+ }
204
+
205
+ @if not($input-suffix-color--focused) and $box-background-focus {
206
+ $input-suffix-color--focused: adaptive-contrast(var(--box-background-focus));
207
+ }
208
+
209
+ @if $box-background != transparent {
210
+ @if not($box-disabled-background) and $box-background {
211
+ $box-disabled-background: hsla(from var(--box-background) h s l / 0.4);
212
+ }
213
+
214
+ @if not($disabled-placeholder-color) and $box-disabled-background {
215
+ $disabled-placeholder-color: adaptive-contrast(var(--box-disabled-background));
216
+ }
217
+
218
+ @if not($disabled-text-color) and $box-disabled-background {
219
+ $disabled-text-color: adaptive-contrast(var(--box-disabled-background));
220
+ }
221
+ } @else {
222
+ @if not($box-disabled-background) and $box-background {
223
+ $box-disabled-background: var(--box-background);
224
+ }
225
+
226
+ @if not($disabled-placeholder-color) and $placeholder-color {
227
+ $disabled-placeholder-color: hsla(from var(--placeholder-color) h s l / 0.7);
228
+ }
229
+
230
+ @if not($disabled-text-color) and $idle-text-color {
231
+ $disabled-text-color: hsla(from var(--idle-text-color) h s l / 0.7);
232
+ }
233
+ }
234
+ }
235
+
236
+ @if $variant == 'fluent' or $variant == 'bootstrap' {
237
+ @if not($input-prefix-background) and $input-suffix-background {
238
+ $input-prefix-background: var(--input-suffix-background);
239
+ }
240
+
241
+ @if not($input-suffix-background) and $input-prefix-background {
242
+ $input-suffix-background: var(--input-prefix-background);
243
+ }
150
244
  }
151
245
 
152
- @if not($placeholder-color) and $box-background-hover {
153
- $placeholder-color: text-contrast($box-background-hover);
246
+ @if $variant == 'material' or $variant == 'indigo' {
247
+ //bottom line color
248
+ @if not($hover-bottom-line-color) and $idle-bottom-line-color {
249
+ $hover-bottom-line-color: hsl(from var(--idle-bottom-line-color) h s calc(l * 0.8));
250
+ }
251
+
252
+ @if not($focused-bottom-line-color) and $hover-bottom-line-color {
253
+ $focused-bottom-line-color: var(--hover-bottom-line-color);
254
+ }
255
+
256
+ @if $variant == 'material' {
257
+ @if not($focused-secondary-color) and $focused-bottom-line-color {
258
+ $focused-secondary-color: var(--focused-bottom-line-color);
259
+ }
260
+
261
+ @if not($border-color) and $idle-bottom-line-color {
262
+ $border-color: var(--idle-bottom-line-color);
263
+ }
264
+ }
154
265
  }
155
266
 
156
- @if not($placeholder-color) and $box-background-focus {
157
- $placeholder-color: text-contrast($box-background-focus);
267
+ //border-color
268
+ @if $variant == 'bootstrap' {
269
+ @if not($focused-border-color) and $border-color {
270
+ $focused-border-color: hsl(from var(--border-color) h s calc(l * 0.8));
271
+ }
272
+
273
+ @if not($focused-secondary-color) and $focused-border-color {
274
+ $focused-secondary-color: hsla(from var(--focused-border-color) h s l / 0.4);
275
+ }
276
+ } @else {
277
+ @if not($hover-border-color) and $border-color {
278
+ $hover-border-color: hsl(from var(--border-color) h s calc(l * 0.8));
279
+ }
280
+
281
+ @if not($focused-border-color) and $hover-border-color {
282
+ $focused-border-color: var(--hover-border-color);
283
+ }
284
+
285
+ @if $variant != 'indigo' {
286
+ @if not($focused-secondary-color) and $focused-border-color {
287
+ $focused-secondary-color: var(--focused-border-color);
288
+ }
289
+ }
158
290
  }
159
291
 
292
+ @if $variant == 'material' {
293
+ @if not($focused-bottom-line-color) and $focused-border-color {
294
+ $focused-bottom-line-color: var(--focused-border-color);
295
+ }
296
+ }
297
+
298
+ //search input
160
299
  @if not($placeholder-color) and $search-background {
161
- $placeholder-color: text-contrast($search-background);
300
+ $placeholder-color: hsla(from adaptive-contrast(var(--search-background)) h s l / 0.9);
301
+ }
302
+
303
+ @if not($hover-placeholder-color) and $placeholder-color {
304
+ $hover-placeholder-color: var(--placeholder-color);
305
+ }
306
+
307
+ @if $variant == 'indigo' {
308
+ @if not($box-background-hover) and $search-background {
309
+ $box-background-hover: var(--search-background);
310
+ }
311
+ } @else {
312
+ @if not($idle-secondary-color) and $placeholder-color {
313
+ $idle-secondary-color: var(--placeholder-color);
314
+ }
315
+ }
316
+
317
+ @if not($idle-text-color) and $search-background {
318
+ $idle-text-color: adaptive-contrast(var(--search-background));
319
+ }
320
+
321
+ @if not($filled-text-color) and $search-background {
322
+ $filled-text-color: adaptive-contrast(var(--search-background));
323
+ }
324
+
325
+ @if not($filled-text-hover-color) and $search-background {
326
+ $filled-text-hover-color: adaptive-contrast(var(--search-background));
327
+ }
328
+
329
+ @if not($focused-text-color) and $search-background {
330
+ $focused-text-color: adaptive-contrast(var(--search-background));
331
+ }
332
+
333
+ @if not($input-prefix-color) and $search-background {
334
+ $input-prefix-color: hsla(from adaptive-contrast(var(--search-background)) h s l / 0.9);
335
+ }
336
+
337
+ @if not($input-suffix-color) and $search-background {
338
+ $input-suffix-color: hsla(from adaptive-contrast(var(--search-background)) h s l / 0.9);
339
+ }
340
+
341
+ @if $variant != 'indigo' {
342
+ @if not($input-prefix-color--filled) and $search-background {
343
+ $input-prefix-color--filled: adaptive-contrast(var(--search-background));
344
+ }
345
+
346
+ @if not($input-prefix-color--focused) and $search-background {
347
+ $input-prefix-color--focused: adaptive-contrast(var(--search-background));
348
+ }
349
+
350
+ @if not($input-suffix-color--filled) and $search-background {
351
+ $input-suffix-color--filled: adaptive-contrast(var(--search-background));
352
+ }
353
+
354
+ @if not($input-suffix-color--focused) and $search-background {
355
+ $input-suffix-color--focused: adaptive-contrast(var(--search-background));
356
+ }
357
+ }
358
+
359
+ @if $search-background != transparent {
360
+ @if not($search-disabled-background) and $search-background {
361
+ $search-disabled-background: hsla(from var(--search-background) h s l / 0.4);
362
+ }
363
+
364
+ @if not($disabled-placeholder-color) and $search-disabled-background {
365
+ $disabled-placeholder-color: adaptive-contrast(var(--search-disabled-background));
366
+ }
367
+
368
+ @if not($disabled-text-color) and $search-disabled-background {
369
+ $disabled-text-color: adaptive-contrast(var(--search-disabled-background));
370
+ }
371
+ } @else {
372
+ @if not($search-disabled-background) and $search-background {
373
+ $search-disabled-background: var(--search-background);
374
+ }
375
+
376
+ @if not($disabled-placeholder-color) and $placeholder-color {
377
+ $disabled-placeholder-color: hsla(from var(--placeholder-color) h s l / 0.7);
378
+ }
379
+
380
+ @if not($disabled-text-color) and $idle-text-color {
381
+ $disabled-text-color: hsla(from var(--idle-text-color) h s l / 0.7);
382
+ }
162
383
  }
163
384
 
164
385
  @if not($search-resting-shadow) {
@@ -172,37 +393,70 @@
172
393
  @if not($search-disabled-shadow) {
173
394
  $search-disabled-shadow: elevation($search-disabled-elevation);
174
395
  }
396
+ //end search input
397
+
398
+ @if not($input-prefix-color) and $input-suffix-color {
399
+ $input-prefix-color: var(--input-suffix-color);
400
+ }
401
+
402
+ @if not($input-suffix-color) and $input-prefix-color {
403
+ $input-suffix-color: var(--input-prefix-color);
404
+ }
175
405
 
176
406
  @if not($input-prefix-background--filled) and $input-prefix-background {
177
- $input-prefix-background--filled: $input-prefix-background;
407
+ $input-prefix-background--filled: var(--input-prefix-background);
178
408
  }
179
409
 
180
410
  @if not($input-prefix-background--focused) and $input-prefix-background {
181
- $input-prefix-background--focused: $input-prefix-background;
411
+ $input-prefix-background--focused: var(--input-prefix-background);
182
412
  }
183
413
 
184
414
  @if not($input-prefix-color) and $input-prefix-background {
185
- $input-prefix-color: text-contrast($input-prefix-background);
415
+ $input-prefix-color: adaptive-contrast(var(--input-prefix-background));
416
+ }
417
+
418
+ @if not($input-prefix-color--filled) and $input-prefix-color {
419
+ $input-prefix-color--filled: var(--input-prefix-color);
420
+ }
421
+
422
+ @if not($input-prefix-color--focused) and $input-prefix-color--filled {
423
+ $input-prefix-color--focused: var(--input-prefix-color--filled);
186
424
  }
187
425
 
188
426
  @if not($input-prefix-color--filled) and $input-prefix-background--filled {
189
- $input-prefix-color--filled: text-contrast($input-prefix-background--filled);
427
+ $input-prefix-color--filled: adaptive-contrast(var(--input-prefix-background--filled));
190
428
  }
191
429
 
192
430
  @if not($input-prefix-color--focused) and $input-prefix-background--focused {
193
- $input-prefix-color--focused: text-contrast($input-prefix-background--focused);
431
+ $input-prefix-color--focused: adaptive-contrast(var(--input-prefix-background--focused));
432
+ }
433
+
434
+ @if not($input-suffix-background--filled) and $input-suffix-background {
435
+ $input-suffix-background--filled: var(--input-suffix-background);
436
+ }
437
+
438
+ @if not($input-suffix-background--focused) and $input-suffix-background {
439
+ $input-suffix-background--focused: var(--input-suffix-background);
194
440
  }
195
441
 
196
442
  @if not($input-suffix-color) and $input-suffix-background {
197
- $input-suffix-color: text-contrast($input-suffix-background);
443
+ $input-suffix-color: adaptive-contrast(var(--input-suffix-background));
444
+ }
445
+
446
+ @if not($input-suffix-color--filled) and $input-suffix-color {
447
+ $input-suffix-color--filled: var(--input-suffix-color);
448
+ }
449
+
450
+ @if not($input-suffix-color--focused) and $input-suffix-color--filled {
451
+ $input-suffix-color--focused: var(--input-suffix-color--filled);
198
452
  }
199
453
 
200
454
  @if not($input-suffix-color--filled) and $input-suffix-background--filled {
201
- $input-suffix-color--filled: text-contrast($input-suffix-background--filled);
455
+ $input-suffix-color--filled: adaptive-contrast(var(--input-suffix-background--filled));
202
456
  }
203
457
 
204
458
  @if not($input-suffix-color--focused) and $input-suffix-background--focused {
205
- $input-suffix-color--focused: text-contrast($input-suffix-background--focused);
459
+ $input-suffix-color--focused: adaptive-contrast(var(--input-suffix-background--focused));
206
460
  }
207
461
 
208
462
  @if not($box-border-radius) {
@@ -234,7 +488,6 @@
234
488
  idle-bottom-line-color: $idle-bottom-line-color,
235
489
  hover-bottom-line-color: $hover-bottom-line-color,
236
490
  focused-bottom-line-color: $focused-bottom-line-color,
237
- interim-bottom-line-color: $interim-bottom-line-color,
238
491
  disabled-bottom-line-color: $disabled-bottom-line-color,
239
492
  border-color: $border-color,
240
493
  hover-border-color: $hover-border-color,
@@ -271,8 +524,6 @@
271
524
  input-suffix-background--filled: $input-suffix-background--filled,
272
525
  input-suffix-color--focused: $input-suffix-color--focused,
273
526
  input-suffix-background--focused: $input-suffix-background--focused,
274
- theme: map.get($schema, '_meta', 'theme'),
275
- variant: map.get($schema, '_meta', 'theme'),
276
527
  size: $size,
277
528
  ));
278
529
  }
@@ -285,7 +536,7 @@
285
536
  // when dynamically switching between the input `type` attribute.
286
537
  @include css-vars($theme);
287
538
 
288
- $variant: map.get($theme, 'variant');
539
+ $variant: map.get($theme, '_meta', 'theme');
289
540
  $transition-timing: .25s $out-cubic;
290
541
  $material-theme: $variant == 'material';
291
542
  $indigo-theme: $variant == 'indigo';
@@ -496,12 +747,23 @@
496
747
  }
497
748
  }
498
749
  }
750
+
751
+ &:not(%form-group-display--focused, %form-group-display--filled) {
752
+ &:has(input:not(:placeholder-shown, [type='file'])) {
753
+ %form-group-label {
754
+ @include type-style('subtitle-1');
755
+ transform: translateY(0);
756
+ }
757
+ }
758
+ }
499
759
  }
500
760
  }
501
761
 
502
762
  %form-group-placeholder {
503
- %form-group-label {
504
- transition: none !important;
763
+ &:has(input:placeholder-shown, textarea:placeholder-shown) {
764
+ %form-group-label {
765
+ transition: none !important;
766
+ }
505
767
  }
506
768
  }
507
769
 
@@ -1004,13 +1266,20 @@
1004
1266
 
1005
1267
  %form-group-label--focused-border,
1006
1268
  %form-group-label--filled-border,
1007
- %form-group-label--placeholder-border,
1008
1269
  %form-group-label--file-border {
1009
1270
  %igx-input-group__notch {
1010
1271
  border-block-start-color: transparent !important;
1011
1272
  }
1012
1273
  }
1013
1274
 
1275
+ %form-group-label--placeholder-border {
1276
+ &:has(input:placeholder-shown, textarea:placeholder-shown) {
1277
+ %igx-input-group__notch {
1278
+ border-block-start-color: transparent !important;
1279
+ }
1280
+ }
1281
+ }
1282
+
1014
1283
  %form-group-label--focused-border {
1015
1284
  %form-group-bundle-start {
1016
1285
  border-inline-start-width: rem(2px);
@@ -1098,6 +1367,26 @@
1098
1367
  width: calc(100% - #{rem(2px)});
1099
1368
  }
1100
1369
  }
1370
+
1371
+ %textarea-group:not(%form-group-display--focused, %form-group-display--filled) {
1372
+ &:has(textarea:not(:placeholder-shown)) {
1373
+ %form-group-textarea-label:not(%textarea-group-label--focused) {
1374
+ @include type-style('subtitle-1');
1375
+
1376
+ top: calc($input-top-padding - #{rem(3px)});
1377
+ transform: translateY(0);
1378
+ margin-bottom: auto;
1379
+ }
1380
+ }
1381
+ }
1382
+
1383
+ %textarea-group:not(%form-group-display--focused, %form-group-display--filled) {
1384
+ &:has(%form-group-display--border, textarea:not(:placeholder-shown)) {
1385
+ %igx-input-group__notch {
1386
+ border-block-start-width: rem(1px);
1387
+ }
1388
+ }
1389
+ }
1101
1390
  }
1102
1391
 
1103
1392
  %form-group-textarea-group-bundle {
@@ -2172,12 +2461,38 @@
2172
2461
 
2173
2462
  %bootstrap-input--success {
2174
2463
  border: rem(1px) solid var-get($theme, 'success-secondary-color');
2175
- box-shadow: 0 0 0 rem(4px) var-get($theme, 'success-shadow-color');
2464
+
2465
+ &:focus {
2466
+ box-shadow: 0 0 0 rem(4px) var-get($theme, 'success-shadow-color');
2467
+
2468
+ + %bootstrap-file-input {
2469
+ box-shadow: 0 0 0 rem(4px) var-get($theme, 'success-shadow-color');
2470
+ }
2471
+ }
2176
2472
  }
2177
2473
 
2178
2474
  %bootstrap-input--error {
2179
2475
  border: rem(1px) solid var-get($theme, 'error-secondary-color');
2180
- box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
2476
+
2477
+ &:focus {
2478
+ box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
2479
+
2480
+ + %bootstrap-file-input {
2481
+ box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
2482
+ }
2483
+ }
2484
+ }
2485
+
2486
+ %bootstrap-input--warning {
2487
+ border: rem(1px) solid var-get($theme, 'warning-secondary-color');
2488
+
2489
+ &:focus {
2490
+ box-shadow: 0 0 0 rem(4px) color($color: 'warn', $variant: 500, $opacity: 0.38);
2491
+
2492
+ + %bootstrap-file-input {
2493
+ box-shadow: 0 0 0 rem(4px) color($color: 'warn', $variant: 500, $opacity: 0.38);
2494
+ }
2495
+ }
2181
2496
  }
2182
2497
 
2183
2498
  %bootstrap-input--disabled {
@@ -33,9 +33,7 @@
33
33
  name: $name,
34
34
  selector: $selector,
35
35
  color: $color,
36
- disabled-color: $disabled-color,
37
- theme: map.get($schema, '_meta', 'theme'),
38
- variant: map.get($schema, '_meta', 'theme'),
36
+ disabled-color: $disabled-color
39
37
  ));
40
38
  }
41
39
 
@@ -46,7 +44,7 @@
46
44
  // The --variant CSS produced by css-vars is needed also
47
45
  // when dynamically switching between the input `type` attribute.
48
46
  @include css-vars($theme);
49
- $variant: map.get($theme, 'variant');
47
+ $variant: map.get($theme, '_meta', 'theme');
50
48
 
51
49
  %label-base {
52
50
  @include ellipsis();