igniteui-angular 19.2.7 → 19.2.8

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 (37) hide show
  1. package/fesm2022/igniteui-angular.mjs +142 -92
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +1 -1
  4. package/lib/core/styles/components/input/_input-group-component.scss +2 -1
  5. package/lib/core/styles/components/input/_input-group-theme.scss +53 -5
  6. package/lib/core/styles/components/label/_label-theme.scss +4 -1
  7. package/lib/core/styles/components/radio/_radio-component.scss +12 -0
  8. package/lib/core/styles/components/radio/_radio-theme.scss +30 -8
  9. package/lib/directives/radio/radio-group.directive.d.ts +33 -15
  10. package/lib/directives/tooltip/tooltip.directive.d.ts +11 -2
  11. package/package.json +1 -1
  12. package/styles/igniteui-angular-dark.css +1 -1
  13. package/styles/igniteui-angular.css +1 -1
  14. package/styles/igniteui-bootstrap-dark.css +1 -1
  15. package/styles/igniteui-bootstrap-light.css +1 -1
  16. package/styles/igniteui-dark-green.css +1 -1
  17. package/styles/igniteui-fluent-dark-excel.css +1 -1
  18. package/styles/igniteui-fluent-dark-word.css +1 -1
  19. package/styles/igniteui-fluent-dark.css +1 -1
  20. package/styles/igniteui-fluent-light-excel.css +1 -1
  21. package/styles/igniteui-fluent-light-word.css +1 -1
  22. package/styles/igniteui-fluent-light.css +1 -1
  23. package/styles/igniteui-indigo-dark.css +1 -1
  24. package/styles/igniteui-indigo-light.css +1 -1
  25. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  26. package/styles/maps/igniteui-angular.css.map +1 -1
  27. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  28. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  29. package/styles/maps/igniteui-dark-green.css.map +1 -1
  30. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  31. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  32. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  33. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  34. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  35. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  36. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  37. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -308,7 +308,7 @@
308
308
  }
309
309
 
310
310
  igx-icon {
311
- --component-size: #{if($variant == 'indigo', 2, var(--grid-size))};
311
+ --component-size: #{if($variant == 'indigo', 2, 1)};
312
312
 
313
313
  display: initial;
314
314
  width: var(--size) !important;
@@ -51,7 +51,7 @@
51
51
 
52
52
  @include e(input) {
53
53
  @extend %form-group-input !optional;
54
- @extend %chrome-autofill-fix !optional;
54
+ @extend %autofill-background-fix !optional;
55
55
  @extend %edge-clear-icon-fix !optional;
56
56
 
57
57
  &:hover {
@@ -421,6 +421,7 @@
421
421
 
422
422
  // Type border START
423
423
  @include m(border) {
424
+ @extend %form-group-display--border !optional;
424
425
  @extend %form-group-display--no-margin !optional;
425
426
 
426
427
  @include e(bundle) {
@@ -394,6 +394,25 @@
394
394
  }
395
395
  }
396
396
 
397
+ @if $variant == 'material' {
398
+ %form-group-display--border {
399
+ &:has(input:-webkit-autofill, input:autofill) {
400
+ %igx-input-group__notch--border {
401
+ border-block-start-color: transparent;
402
+ }
403
+
404
+ %form-group-label {
405
+ --label-position: #{sizable(18px, 22px, 26px)};
406
+
407
+ transform: translateY(calc(var(--label-position) * -1));
408
+ margin-top: 0;
409
+ overflow: hidden;
410
+ will-change: font-size, color, transform;
411
+ }
412
+ }
413
+ }
414
+ }
415
+
397
416
  %form-group-display--box {
398
417
  %form-group-border {
399
418
  margin-bottom: 0;
@@ -464,6 +483,20 @@
464
483
  --size: var(--input-icon) !important;
465
484
  }
466
485
  }
486
+
487
+ @if $variant == 'material' {
488
+ &:not(%form-group-display--border) {
489
+ &:has(input:-webkit-autofill, input:autofill) {
490
+ %form-group-label {
491
+ --floating-label-position: -73%;
492
+
493
+ @include type-style('caption');
494
+
495
+ transform: translateY(var(--floating-label-position));
496
+ }
497
+ }
498
+ }
499
+ }
467
500
  }
468
501
 
469
502
  %form-group-placeholder {
@@ -1234,13 +1267,20 @@
1234
1267
  }
1235
1268
  }
1236
1269
 
1237
- %chrome-autofill-fix {
1270
+ // This is a hack that removes the autofill background and it's essential,
1271
+ // otherwise the background is on top of the floating label in material theme.
1272
+ // The !important flag is because bootstrap theme(and potentially feature themes) is overriding the transition delay.
1273
+ %autofill-background-fix {
1238
1274
  &:-webkit-autofill,
1239
1275
  &:-webkit-autofill:hover,
1240
1276
  &:-webkit-autofill:focus,
1241
- &:-webkit-autofill:active {
1242
- -webkit-transition-delay: 99999s;
1243
- transition-delay: 99999s;
1277
+ &:-webkit-autofill:active,
1278
+ &:autofill,
1279
+ &:autofill:hover,
1280
+ &:autofill:focus,
1281
+ &:autofill:active, {
1282
+ -webkit-transition-delay: 99999s !important;
1283
+ transition-delay: 99999s !important;
1244
1284
  }
1245
1285
  }
1246
1286
 
@@ -2092,7 +2132,15 @@
2092
2132
  map.get($bootstrap-inline-padding, 'cosy'),
2093
2133
  map.get($bootstrap-inline-padding, 'comfortable')
2094
2134
  );
2095
- transition: box-shadow .15s ease-out, border .15s ease-out;
2135
+ }
2136
+
2137
+ // The :not selector is needed otherwise bootstrap will override the %autofill-background-fix
2138
+ %form-group-display--bootstrap {
2139
+ :not(:has(input:-webkit-autofill, input:autofill)) {
2140
+ %bootstrap-input {
2141
+ transition: box-shadow .15s ease-out, border .15s ease-out;
2142
+ }
2143
+ }
2096
2144
  }
2097
2145
 
2098
2146
  %bootstrap-input,
@@ -11,9 +11,11 @@
11
11
 
12
12
  /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
13
13
  /// @param {Map} $color [null] - The text color.
14
+ /// @param {Map} $disabled-color [null] - The disabled text color.
14
15
  @function label-theme(
15
16
  $schema: $light-material-schema,
16
- $color: null
17
+ $color: null,
18
+ $disabled-color: null,
17
19
  ) {
18
20
  $name: 'igx-label';
19
21
  $selector: '[igxLabel]';
@@ -31,6 +33,7 @@
31
33
  name: $name,
32
34
  selector: $selector,
33
35
  color: $color,
36
+ disabled-color: $disabled-color,
34
37
  theme: map.get($schema, '_meta', 'theme'),
35
38
  variant: map.get($schema, '_meta', 'theme'),
36
39
  ));
@@ -115,6 +115,10 @@
115
115
  @include e(label) {
116
116
  @extend %radio-label--disabled !optional;
117
117
  }
118
+
119
+ @include e(label, $m: before) {
120
+ @extend %radio-label--disabled !optional;
121
+ }
118
122
  }
119
123
 
120
124
  @include m(invalid) {
@@ -217,5 +221,13 @@
217
221
  @include m(vertical) {
218
222
  @extend %radio-group-display--vertical !optional;
219
223
  }
224
+
225
+ @include m(before) {
226
+ @extend %radio-group-display--before !optional;
227
+ }
228
+
229
+ @include m(disabled) {
230
+ @extend %radio-group-display--disabled !optional;
231
+ }
220
232
  }
221
233
  }
@@ -597,18 +597,40 @@
597
597
  }
598
598
 
599
599
  %radio-group-display {
600
- display: block;
601
- %radio-display:not(:last-of-type) {
602
- margin-inline-end: $horizontal-group-margin;
600
+ display: grid;
601
+ column-gap: $horizontal-group-margin;
602
+ align-items: start;
603
+ width: max-content;
604
+ }
605
+
606
+ %radio-group-display:not(%radio-group-display--vertical) {
607
+ [igxLabel] {
608
+ margin-block-end: rem(16px);
609
+ }
610
+
611
+ igx-radio {
612
+ grid-row: 2;
603
613
  }
604
614
  }
605
615
 
606
616
  %radio-group-display--vertical {
607
- display: flex;
608
- flex-flow: column;
609
- %radio-display:not(:last-of-type) {
610
- margin-inline-end: 0;
611
- margin-block-end: $vertical-group-margin;
617
+ row-gap: $vertical-group-margin;
618
+
619
+ [igxLabel] {
620
+ margin-block-end: if($variant == 'material', rem(16px), rem(8px));
621
+ }
622
+
623
+ &%radio-group-display--before {
624
+ igx-radio,
625
+ [igxLabel] {
626
+ justify-self: flex-end;
627
+ }
628
+ }
629
+ }
630
+
631
+ %radio-group-display--disabled {
632
+ [igxLabel] {
633
+ color: var-get($theme, 'disabled-color');
612
634
  }
613
635
  }
614
636
  }
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, EventEmitter, OnDestroy, QueryList } from '@angular/core';
1
+ import { ChangeDetectorRef, DoCheck, EventEmitter, OnDestroy, QueryList } from '@angular/core';
2
2
  import { ControlValueAccessor, NgControl } from '@angular/forms';
3
3
  import { IgxRadioComponent } from '../../radio/radio.component';
4
4
  import { IgxDirectionality } from '../../services/direction/directionality';
@@ -35,10 +35,12 @@ export type RadioGroupAlignment = typeof RadioGroupAlignment[keyof typeof RadioG
35
35
  * </igx-radio-group>
36
36
  * ```
37
37
  */
38
- export declare class IgxRadioGroupDirective implements AfterContentInit, AfterViewInit, ControlValueAccessor, OnDestroy, DoCheck {
38
+ export declare class IgxRadioGroupDirective implements ControlValueAccessor, OnDestroy, DoCheck {
39
39
  ngControl: NgControl;
40
40
  private _directionality;
41
41
  private cdr;
42
+ private _radioButtons;
43
+ private _radioButtonsList;
42
44
  /**
43
45
  * Returns reference to the child radio buttons.
44
46
  *
@@ -47,7 +49,7 @@ export declare class IgxRadioGroupDirective implements AfterContentInit, AfterVi
47
49
  * let radioButtons = this.radioGroup.radioButtons;
48
50
  * ```
49
51
  */
50
- radioButtons: QueryList<IgxRadioComponent>;
52
+ get radioButtons(): QueryList<IgxRadioComponent>;
51
53
  /**
52
54
  * Sets/gets the `value` attribute.
53
55
  *
@@ -134,6 +136,22 @@ export declare class IgxRadioGroupDirective implements AfterContentInit, AfterVi
134
136
  * ```
135
137
  */
136
138
  private vertical;
139
+ /**
140
+ * A css class applied to the component if any of the
141
+ * child radio buttons labelPosition is set to `before`.
142
+ *
143
+ * @hidden
144
+ * @internal
145
+ */
146
+ protected get labelBefore(): boolean;
147
+ /**
148
+ * A css class applied to the component if all
149
+ * child radio buttons are disabled.
150
+ *
151
+ * @hidden
152
+ * @internal
153
+ */
154
+ protected get disabled(): boolean;
137
155
  protected handleClick(event: MouseEvent): void;
138
156
  protected handleKeyDown(event: KeyboardEvent): void;
139
157
  /**
@@ -204,16 +222,6 @@ export declare class IgxRadioGroupDirective implements AfterContentInit, AfterVi
204
222
  * @internal
205
223
  */
206
224
  private queryChange$;
207
- /**
208
- * @hidden
209
- * @internal
210
- */
211
- ngAfterContentInit(): void;
212
- /**
213
- * @hidden
214
- * @internal
215
- */
216
- ngAfterViewInit(): void;
217
225
  /**
218
226
  * @hidden
219
227
  * @internal
@@ -263,7 +271,17 @@ export declare class IgxRadioGroupDirective implements AfterContentInit, AfterVi
263
271
  * @hidden
264
272
  * @internal
265
273
  */
266
- private _initRadioButtons;
274
+ private initialize;
275
+ /**
276
+ * @hidden
277
+ * @internal
278
+ */
279
+ private setRadioButtons;
280
+ /**
281
+ * @hidden
282
+ * @internal
283
+ */
284
+ private _setRadioButtonEvents;
267
285
  /**
268
286
  * @hidden
269
287
  * @internal
@@ -290,7 +308,7 @@ export declare class IgxRadioGroupDirective implements AfterContentInit, AfterVi
290
308
  */
291
309
  private _setRadioButtonsInvalid;
292
310
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxRadioGroupDirective, [{ optional: true; self: true; }, null, null]>;
293
- static ɵdir: i0.ɵɵDirectiveDeclaration<IgxRadioGroupDirective, "igx-radio-group, [igxRadioGroup]", ["igxRadioGroup"], { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "change": "change"; }, ["radioButtons"], never, true, never>;
311
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IgxRadioGroupDirective, "igx-radio-group, [igxRadioGroup]", ["igxRadioGroup"], { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "change": "change"; }, ["_radioButtons"], never, true, never>;
294
312
  static ngAcceptInputType_required: unknown;
295
313
  static ngAcceptInputType_invalid: unknown;
296
314
  }
@@ -1,8 +1,9 @@
1
- import { ElementRef, ChangeDetectorRef } from '@angular/core';
1
+ import { ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { IgxOverlayService } from '../../services/overlay/overlay';
3
3
  import { OverlaySettings } from '../../services/public_api';
4
4
  import { IgxNavigationService } from '../../core/navigation';
5
5
  import { IgxToggleDirective } from '../toggle/toggle.directive';
6
+ import { IgxTooltipTargetDirective } from './tooltip-target.directive';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * **Ignite UI for Angular Tooltip** -
@@ -18,7 +19,7 @@ import * as i0 from "@angular/core";
18
19
  * <span #tooltipRef="tooltip" igxTooltip>Hello there, I am a tooltip!</span>
19
20
  * ```
20
21
  */
21
- export declare class IgxTooltipDirective extends IgxToggleDirective {
22
+ export declare class IgxTooltipDirective extends IgxToggleDirective implements OnDestroy {
22
23
  /**
23
24
  * @hidden
24
25
  */
@@ -74,8 +75,15 @@ export declare class IgxTooltipDirective extends IgxToggleDirective {
74
75
  * Returns whether open time out has started
75
76
  */
76
77
  toBeShown: boolean;
78
+ /**
79
+ * @hidden
80
+ */
81
+ tooltipTarget: IgxTooltipTargetDirective;
82
+ private _destroy$;
77
83
  /** @hidden */
78
84
  constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, overlayService: IgxOverlayService, navigationService: IgxNavigationService);
85
+ /** @hidden */
86
+ ngOnDestroy(): void;
79
87
  /**
80
88
  * If there is open animation in progress this method will finish is.
81
89
  * If there is no open animation in progress this method will open the toggle with no animation.
@@ -90,6 +98,7 @@ export declare class IgxTooltipDirective extends IgxToggleDirective {
90
98
  * @param overlaySettings settings to use for closing the toggle
91
99
  */
92
100
  protected forceClose(overlaySettings?: OverlaySettings): void;
101
+ private onDocumentTouchStart;
93
102
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxTooltipDirective, [null, null, null, { optional: true; }]>;
94
103
  static ɵdir: i0.ɵɵDirectiveDeclaration<IgxTooltipDirective, "[igxTooltip]", ["tooltip"], { "context": { "alias": "context"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
95
104
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "19.2.7",
3
+ "version": "19.2.8",
4
4
  "description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
5
5
  "author": "Infragistics",
6
6
  "license": "SEE LICENSE IN LICENSE",