igniteui-angular 22.2.0 → 22.2.2

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 (65) hide show
  1. package/checkbox/README.md +4 -0
  2. package/fesm2022/igniteui-angular-checkbox.mjs +18 -13
  3. package/fesm2022/igniteui-angular-checkbox.mjs.map +1 -1
  4. package/fesm2022/igniteui-angular-directives.mjs +19 -0
  5. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  6. package/fesm2022/igniteui-angular-grids-core.mjs +4 -0
  7. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  8. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +18 -41
  9. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  10. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +13 -15
  11. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  12. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +43 -34
  13. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-query-builder.mjs +4 -4
  15. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-radio.mjs +32 -14
  17. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  18. package/fesm2022/igniteui-angular-switch.mjs +18 -13
  19. package/fesm2022/igniteui-angular-switch.mjs.map +1 -1
  20. package/fesm2022/igniteui-angular-tabs.mjs +39 -9
  21. package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
  22. package/fesm2022/igniteui-angular-tree.mjs +2 -2
  23. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  24. package/fesm2022/igniteui-angular-virtual-scroll.mjs +17 -0
  25. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
  26. package/package.json +2 -2
  27. package/radio/README.md +4 -0
  28. package/skills/igniteui-angular-components/references/form-controls.md +1 -1
  29. package/skills/igniteui-angular-grids/references/types.md +1 -1
  30. package/styles/igniteui-angular-dark.css +1 -1
  31. package/styles/igniteui-angular.css +1 -1
  32. package/styles/igniteui-bootstrap-dark.css +1 -1
  33. package/styles/igniteui-bootstrap-light.css +1 -1
  34. package/styles/igniteui-dark-green.css +1 -1
  35. package/styles/igniteui-fluent-dark-excel.css +1 -1
  36. package/styles/igniteui-fluent-dark-word.css +1 -1
  37. package/styles/igniteui-fluent-dark.css +1 -1
  38. package/styles/igniteui-fluent-light-excel.css +1 -1
  39. package/styles/igniteui-fluent-light-word.css +1 -1
  40. package/styles/igniteui-fluent-light.css +1 -1
  41. package/styles/igniteui-indigo-dark.css +1 -1
  42. package/styles/igniteui-indigo-light.css +1 -1
  43. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  44. package/styles/maps/igniteui-angular.css.map +1 -1
  45. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  46. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  47. package/styles/maps/igniteui-dark-green.css.map +1 -1
  48. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  49. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  52. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  53. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  54. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  55. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  56. package/switch/README.md +4 -0
  57. package/types/igniteui-angular-checkbox.d.ts +2 -1
  58. package/types/igniteui-angular-directives.d.ts +7 -1
  59. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +7 -6
  60. package/types/igniteui-angular-grids-pivot-grid.d.ts +2 -4
  61. package/types/igniteui-angular-grids-tree-grid.d.ts +32 -14
  62. package/types/igniteui-angular-radio.d.ts +8 -1
  63. package/types/igniteui-angular-switch.d.ts +2 -1
  64. package/types/igniteui-angular-virtual-scroll.d.ts +5 -0
  65. package/virtual-scroll/README.md +1 -1
@@ -61,6 +61,10 @@ To disable the ripple effect, do:
61
61
  <igx-checkbox [disableRipple]="'true'"></igx-checkbox>
62
62
  ```
63
63
 
64
+ ### Invalid State in Forms
65
+
66
+ With a reactive, template-driven or Signal Forms (`[formField]`) binding, the invalid state is shown only once the control is touched or dirty, so a pristine control stays in its initial state, e.g. right after `reset()`.
67
+
64
68
  ## API
65
69
 
66
70
  # API Summary
@@ -77,19 +77,6 @@ class IgxCheckboxComponent extends CheckboxBaseDirective {
77
77
  * ```
78
78
  */
79
79
  this.disabled = false;
80
- /**
81
- * Sets/gets whether the checkbox is invalid.
82
- * Default value is `false`.
83
- *
84
- * @example
85
- * ```html
86
- * <igx-checkbox invalid></igx-checkbox>
87
- * ```
88
- * ```typescript
89
- * let isInvalid = this.checkbox.invalid;
90
- * ```
91
- */
92
- this.invalid = false;
93
80
  /**
94
81
  * Sets/gets whether the checkbox is readonly.
95
82
  * Default value is `false`.
@@ -135,6 +122,24 @@ class IgxCheckboxComponent extends CheckboxBaseDirective {
135
122
  get checked() {
136
123
  return super.checked;
137
124
  }
125
+ /**
126
+ * Sets/gets whether the checkbox is invalid.
127
+ * Default value is `false`.
128
+ *
129
+ * @example
130
+ * ```html
131
+ * <igx-checkbox invalid></igx-checkbox>
132
+ * ```
133
+ * ```typescript
134
+ * let isInvalid = this.checkbox.invalid;
135
+ * ```
136
+ */
137
+ get invalid() {
138
+ return super.invalid;
139
+ }
140
+ set invalid(value) {
141
+ super.invalid = value;
142
+ }
138
143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
139
144
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.2.0", type: IgxCheckboxComponent, isStandalone: true, selector: "igx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute], checked: ["checked", "checked", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], invalid: ["invalid", "invalid", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], disableTransitions: ["disableTransitions", "disableTransitions", booleanAttribute] }, host: { properties: { "class.igx-checkbox": "this.cssClass", "class.igx-checkbox--focused": "this.focused", "class.igx-checkbox--indeterminate": "this.indeterminate", "class.igx-checkbox--checked": "this.checked", "class.igx-checkbox--disabled": "this.disabled", "class.igx-checkbox--invalid": "this.invalid", "class.igx-checkbox--plain": "this.disableTransitions" } }, providers: [
140
145
  {
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-checkbox.mjs","sources":["../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.component.ts","../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.component.html","../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.module.ts","../../../projects/igniteui-angular/checkbox/src/igniteui-angular-checkbox.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n Input,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewEncapsulation\n} from '@angular/core';\nimport { CheckboxBaseDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { EditorProvider, EDITOR_PROVIDER } from 'igniteui-angular/core';\n\n/**\n * Allows users to make a binary choice for a certain condition.\n *\n * @igxModule IgxCheckboxModule\n *\n * @igxTheme igx-checkbox-theme\n *\n * @igxKeywords checkbox, label\n *\n * @igxGroup Data entry and display\n *\n * @remarks\n * The Ignite UI Checkbox is a selection control that allows users to make a binary choice for a certain condition.It behaves similarly\n * to the native browser checkbox.\n *\n * @example\n * ```html\n * <igx-checkbox [checked]=\"true\">\n * simple checkbox\n * </igx-checkbox>\n * ```\n */\n@Component({\n selector: 'igx-checkbox',\n providers: [\n {\n provide: EDITOR_PROVIDER,\n useExisting: IgxCheckboxComponent,\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n templateUrl: 'checkbox.component.html',\n styleUrl: 'checkbox.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [IgxRippleDirective],\n})\nexport class IgxCheckboxComponent\n extends CheckboxBaseDirective\n implements AfterViewInit, ControlValueAccessor, EditorProvider {\n /**\n * Returns the class of the checkbox component.\n *\n * @example\n * ```typescript\n * let class = this.checkbox.cssClass;\n * ```\n */\n @HostBinding('class.igx-checkbox')\n public override cssClass = 'igx-checkbox';\n\n /**\n * Sets/gets whether the checkbox component is on focus.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.checkbox.focused = true;\n * ```\n * ```typescript\n * let isFocused = this.checkbox.focused;\n * ```\n */\n @HostBinding('class.igx-checkbox--focused')\n public override focused = false;\n\n /**\n * Sets/gets the checkbox indeterminate visual state.\n * Default value is `false`;\n *\n * @example\n * ```html\n * <igx-checkbox [indeterminate]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let isIndeterminate = this.checkbox.indeterminate;\n * ```\n */\n @HostBinding('class.igx-checkbox--indeterminate')\n @Input({ transform: booleanAttribute })\n public override indeterminate = false;\n\n /**\n * Sets/gets whether the checkbox is checked.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [checked]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let isChecked = this.checkbox.checked;\n * ```\n */\n @HostBinding('class.igx-checkbox--checked')\n @Input({ transform: booleanAttribute })\n public override set checked(value: boolean) {\n super.checked = value;\n }\n public override get checked() {\n return super.checked;\n }\n\n /**\n * Sets/gets whether the checkbox is disabled.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox disabled></igx-checkbox>\n * ```\n * ```typescript\n * let isDisabled = this.checkbox.disabled;\n * ```\n */\n @HostBinding('class.igx-checkbox--disabled')\n @Input({ transform: booleanAttribute })\n public override disabled = false;\n\n /**\n * Sets/gets whether the checkbox is invalid.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox invalid></igx-checkbox>\n * ```\n * ```typescript\n * let isInvalid = this.checkbox.invalid;\n * ```\n */\n @HostBinding('class.igx-checkbox--invalid')\n @Input({ transform: booleanAttribute })\n public override invalid = false;\n\n /**\n * Sets/gets whether the checkbox is readonly.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [readonly]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let readonly = this.checkbox.readonly;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override readonly = false;\n\n /**\n * Sets/gets whether the checkbox should disable all css transitions.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [disableTransitions]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let disableTransitions = this.checkbox.disableTransitions;\n * ```\n */\n @HostBinding('class.igx-checkbox--plain')\n @Input({ transform: booleanAttribute })\n public disableTransitions = false;\n}\n","<input #checkbox class=\"igx-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [value]=\"value\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [required]=\"required\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-labelledby]=\"ariaLabel ? null : ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n (change)=\"_onCheckboxChange($event)\"\n (blur)=\"onBlur()\" />\n\n<div\n igxRipple\n igxRippleTarget=\".igx-checkbox__ripple\"\n [igxRippleDisabled]=\"disableRipple\"\n [igxRippleCentered]=\"true\"\n [igxRippleDuration]=\"300\"\n class=\"igx-checkbox__composite-wrapper\"\n>\n <span #label class=\"igx-checkbox__composite\">\n <svg class=\"igx-checkbox__composite-mark igx-checkbox__composite-mark--indigo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <rect width=\"18\" height=\"4\" x=\"2\" y=\"9\" rx=\"1.85\"/>\n <path d=\"M19.033 5a1.966 1.966 0 0 0-1.418.586l-8.479 8.577-2.753-2.77a1.971 1.971 0 0 0-2.8 0 1.998 1.998 0 0 0 0 2.822l4.155 4.196a1.955 1.955 0 0 0 2.8 0l9.879-9.99a1.998 1.998 0 0 0 0-2.821 1.966 1.966 0 0 0-1.384-.6Z\"/>\n </svg>\n <svg class=\"igx-checkbox__composite-mark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.1,12.7 9,17.6 20.3,6.3\"/>\n </svg>\n </span>\n\n <div class=\"igx-checkbox__ripple\"></div>\n</div>\n\n<span #placeholderLabel\n [class]=\"labelClass\"\n [id]=\"labelId\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { IgxCheckboxComponent } from './checkbox.component';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [IgxCheckboxComponent],\n exports: [IgxCheckboxComponent]\n})\nexport class IgxCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-checkbox.mjs","sources":["../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.component.ts","../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.component.html","../../../projects/igniteui-angular/checkbox/src/checkbox/checkbox.module.ts","../../../projects/igniteui-angular/checkbox/src/igniteui-angular-checkbox.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n Input,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewEncapsulation\n} from '@angular/core';\nimport { CheckboxBaseDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { EditorProvider, EDITOR_PROVIDER } from 'igniteui-angular/core';\n\n/**\n * Allows users to make a binary choice for a certain condition.\n *\n * @igxModule IgxCheckboxModule\n *\n * @igxTheme igx-checkbox-theme\n *\n * @igxKeywords checkbox, label\n *\n * @igxGroup Data entry and display\n *\n * @remarks\n * The Ignite UI Checkbox is a selection control that allows users to make a binary choice for a certain condition.It behaves similarly\n * to the native browser checkbox.\n *\n * @example\n * ```html\n * <igx-checkbox [checked]=\"true\">\n * simple checkbox\n * </igx-checkbox>\n * ```\n */\n@Component({\n selector: 'igx-checkbox',\n providers: [\n {\n provide: EDITOR_PROVIDER,\n useExisting: IgxCheckboxComponent,\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n templateUrl: 'checkbox.component.html',\n styleUrl: 'checkbox.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [IgxRippleDirective],\n})\nexport class IgxCheckboxComponent\n extends CheckboxBaseDirective\n implements AfterViewInit, ControlValueAccessor, EditorProvider {\n /**\n * Returns the class of the checkbox component.\n *\n * @example\n * ```typescript\n * let class = this.checkbox.cssClass;\n * ```\n */\n @HostBinding('class.igx-checkbox')\n public override cssClass = 'igx-checkbox';\n\n /**\n * Sets/gets whether the checkbox component is on focus.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.checkbox.focused = true;\n * ```\n * ```typescript\n * let isFocused = this.checkbox.focused;\n * ```\n */\n @HostBinding('class.igx-checkbox--focused')\n public override focused = false;\n\n /**\n * Sets/gets the checkbox indeterminate visual state.\n * Default value is `false`;\n *\n * @example\n * ```html\n * <igx-checkbox [indeterminate]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let isIndeterminate = this.checkbox.indeterminate;\n * ```\n */\n @HostBinding('class.igx-checkbox--indeterminate')\n @Input({ transform: booleanAttribute })\n public override indeterminate = false;\n\n /**\n * Sets/gets whether the checkbox is checked.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [checked]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let isChecked = this.checkbox.checked;\n * ```\n */\n @HostBinding('class.igx-checkbox--checked')\n @Input({ transform: booleanAttribute })\n public override set checked(value: boolean) {\n super.checked = value;\n }\n public override get checked() {\n return super.checked;\n }\n\n /**\n * Sets/gets whether the checkbox is disabled.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox disabled></igx-checkbox>\n * ```\n * ```typescript\n * let isDisabled = this.checkbox.disabled;\n * ```\n */\n @HostBinding('class.igx-checkbox--disabled')\n @Input({ transform: booleanAttribute })\n public override disabled = false;\n\n /**\n * Sets/gets whether the checkbox is invalid.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox invalid></igx-checkbox>\n * ```\n * ```typescript\n * let isInvalid = this.checkbox.invalid;\n * ```\n */\n @HostBinding('class.igx-checkbox--invalid')\n @Input({ transform: booleanAttribute })\n public override get invalid(): boolean {\n return super.invalid;\n }\n public override set invalid(value: boolean) {\n super.invalid = value;\n }\n\n /**\n * Sets/gets whether the checkbox is readonly.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [readonly]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let readonly = this.checkbox.readonly;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override readonly = false;\n\n /**\n * Sets/gets whether the checkbox should disable all css transitions.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-checkbox [disableTransitions]=\"true\"></igx-checkbox>\n * ```\n * ```typescript\n * let disableTransitions = this.checkbox.disableTransitions;\n * ```\n */\n @HostBinding('class.igx-checkbox--plain')\n @Input({ transform: booleanAttribute })\n public disableTransitions = false;\n}\n","<input #checkbox class=\"igx-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [value]=\"value\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [required]=\"required\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-labelledby]=\"ariaLabel ? null : ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n (change)=\"_onCheckboxChange($event)\"\n (blur)=\"onBlur()\" />\n\n<div\n igxRipple\n igxRippleTarget=\".igx-checkbox__ripple\"\n [igxRippleDisabled]=\"disableRipple\"\n [igxRippleCentered]=\"true\"\n [igxRippleDuration]=\"300\"\n class=\"igx-checkbox__composite-wrapper\"\n>\n <span #label class=\"igx-checkbox__composite\">\n <svg class=\"igx-checkbox__composite-mark igx-checkbox__composite-mark--indigo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <rect width=\"18\" height=\"4\" x=\"2\" y=\"9\" rx=\"1.85\"/>\n <path d=\"M19.033 5a1.966 1.966 0 0 0-1.418.586l-8.479 8.577-2.753-2.77a1.971 1.971 0 0 0-2.8 0 1.998 1.998 0 0 0 0 2.822l4.155 4.196a1.955 1.955 0 0 0 2.8 0l9.879-9.99a1.998 1.998 0 0 0 0-2.821 1.966 1.966 0 0 0-1.384-.6Z\"/>\n </svg>\n <svg class=\"igx-checkbox__composite-mark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.1,12.7 9,17.6 20.3,6.3\"/>\n </svg>\n </span>\n\n <div class=\"igx-checkbox__ripple\"></div>\n</div>\n\n<span #placeholderLabel\n [class]=\"labelClass\"\n [id]=\"labelId\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { IgxCheckboxComponent } from './checkbox.component';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [IgxCheckboxComponent],\n exports: [IgxCheckboxComponent]\n})\nexport class IgxCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -209,6 +209,16 @@ const LabelPosition = {
209
209
  };
210
210
  let nextId = 0;
211
211
  class CheckboxBaseDirective {
212
+ get invalid() {
213
+ return this._invalid;
214
+ }
215
+ set invalid(value) {
216
+ // Signal Forms writes the field's raw validity here; show it only once touched or dirty.
217
+ if (this.control?.backend === 'signal' && !this.control.touchedOrDirty) {
218
+ value = false;
219
+ }
220
+ this._invalid = value;
221
+ }
212
222
  get checked() {
213
223
  return this._checked;
214
224
  }
@@ -351,6 +361,11 @@ class CheckboxBaseDirective {
351
361
  * @internal
352
362
  */
353
363
  this._checked = false;
364
+ /**
365
+ * @hidden
366
+ * @internal
367
+ */
368
+ this._invalid = false;
354
369
  /**
355
370
  * @hidden
356
371
  * @internal
@@ -1401,6 +1416,10 @@ class IgxDragDirective {
1401
1416
  * @param event PointerDown event captured
1402
1417
  */
1403
1418
  onPointerDown(event) {
1419
+ // Start drag only with the primary pointer button.
1420
+ if ((this.pointerEventsEnabled || !this.touchEventsEnabled) && 'button' in event && event.button !== 0) {
1421
+ return;
1422
+ }
1404
1423
  const ignoredElement = this.dragIgnoredElems.find(elem => elem.element.nativeElement === event.target);
1405
1424
  if (ignoredElement) {
1406
1425
  return;