igniteui-angular 22.1.4 → 22.2.0-rc.0

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 (142) hide show
  1. package/README.md +2 -2
  2. package/combo/README.md +19 -0
  3. package/drop-down/README.md +40 -4
  4. package/fesm2022/igniteui-angular-accordion.mjs +7 -7
  5. package/fesm2022/igniteui-angular-action-strip.mjs +10 -10
  6. package/fesm2022/igniteui-angular-avatar.mjs +7 -7
  7. package/fesm2022/igniteui-angular-badge.mjs +7 -7
  8. package/fesm2022/igniteui-angular-banner.mjs +10 -10
  9. package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
  10. package/fesm2022/igniteui-angular-button-group.mjs +12 -13
  11. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  12. package/fesm2022/igniteui-angular-calendar.mjs +61 -61
  13. package/fesm2022/igniteui-angular-card.mjs +31 -31
  14. package/fesm2022/igniteui-angular-carousel.mjs +22 -22
  15. package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
  16. package/fesm2022/igniteui-angular-chat.mjs +12 -12
  17. package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
  18. package/fesm2022/igniteui-angular-chips.mjs +10 -10
  19. package/fesm2022/igniteui-angular-combo.mjs +268 -120
  20. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-core.mjs +188 -59
  22. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-date-picker.mjs +71 -80
  24. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-dialog.mjs +13 -13
  26. package/fesm2022/igniteui-angular-directives.mjs +321 -457
  27. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  28. package/fesm2022/igniteui-angular-drop-down.mjs +331 -104
  29. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  30. package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
  31. package/fesm2022/igniteui-angular-grids-core.mjs +552 -516
  32. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-grids-grid.mjs +79 -80
  34. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +59 -46
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-grids-lite.mjs +12 -12
  38. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +113 -86
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  40. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +57 -57
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  42. package/fesm2022/igniteui-angular-icon.mjs +10 -10
  43. package/fesm2022/igniteui-angular-input-group.mjs +47 -61
  44. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  45. package/fesm2022/igniteui-angular-list.mjs +40 -40
  46. package/fesm2022/igniteui-angular-navbar.mjs +13 -13
  47. package/fesm2022/igniteui-angular-navigation-drawer.mjs +16 -16
  48. package/fesm2022/igniteui-angular-paginator.mjs +19 -19
  49. package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
  50. package/fesm2022/igniteui-angular-query-builder.mjs +23 -23
  51. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-radio.mjs +59 -35
  53. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  54. package/fesm2022/igniteui-angular-select.mjs +35 -43
  55. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-simple-combo.mjs +44 -33
  57. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  58. package/fesm2022/igniteui-angular-slider.mjs +28 -28
  59. package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
  60. package/fesm2022/igniteui-angular-splitter.mjs +13 -13
  61. package/fesm2022/igniteui-angular-stepper.mjs +34 -34
  62. package/fesm2022/igniteui-angular-switch.mjs +7 -7
  63. package/fesm2022/igniteui-angular-tabs.mjs +34 -34
  64. package/fesm2022/igniteui-angular-time-picker.mjs +29 -38
  65. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  66. package/fesm2022/igniteui-angular-toast.mjs +7 -7
  67. package/fesm2022/igniteui-angular-tree.mjs +28 -28
  68. package/fesm2022/igniteui-angular-virtual-scroll.mjs +1257 -0
  69. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -0
  70. package/fesm2022/igniteui-angular.mjs +1 -0
  71. package/fesm2022/igniteui-angular.mjs.map +1 -1
  72. package/input-group/README.md +2 -0
  73. package/lib/core/styles/components/scrollbar/scrollbar-component.scss +0 -2
  74. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +23 -51
  75. package/lib/grids/core/src/column-actions/themes/_derived.scss +3 -3
  76. package/lib/grids/core/src/filtering/excel-style/themes/_derived.scss +3 -3
  77. package/lib/grids/themes/_derived.scss +3 -3
  78. package/lib/query-builder/src/query-builder/themes/_derived.scss +3 -3
  79. package/migrations/migration-collection.json +10 -0
  80. package/migrations/update-22_2_0/changes/theme-changes.json +77 -0
  81. package/migrations/update-22_2_0/index.d.ts +3 -0
  82. package/migrations/update-22_2_0/index.js +18 -0
  83. package/migrations/update-22_2_0/index.spec.d.ts +1 -0
  84. package/migrations/update-22_2_0/index.spec.js +88 -0
  85. package/migrations/update-22_2_0_grid-summary-borders/changes/theme-changes.json +17 -0
  86. package/migrations/update-22_2_0_grid-summary-borders/index.d.ts +3 -0
  87. package/migrations/update-22_2_0_grid-summary-borders/index.js +64 -0
  88. package/migrations/update-22_2_0_grid-summary-borders/index.spec.d.ts +1 -0
  89. package/migrations/update-22_2_0_grid-summary-borders/index.spec.js +100 -0
  90. package/package.json +6 -2
  91. package/schematics/tsconfig.tsbuildinfo +1 -1
  92. package/simple-combo/README.md +3 -0
  93. package/skills/igniteui-angular-components/references/form-controls.md +58 -0
  94. package/styles/igniteui-angular-dark.css +1 -1
  95. package/styles/igniteui-angular.css +1 -1
  96. package/styles/igniteui-bootstrap-dark.css +1 -1
  97. package/styles/igniteui-bootstrap-light.css +1 -1
  98. package/styles/igniteui-dark-green.css +1 -1
  99. package/styles/igniteui-fluent-dark-excel.css +1 -1
  100. package/styles/igniteui-fluent-dark-word.css +1 -1
  101. package/styles/igniteui-fluent-dark.css +1 -1
  102. package/styles/igniteui-fluent-light-excel.css +1 -1
  103. package/styles/igniteui-fluent-light-word.css +1 -1
  104. package/styles/igniteui-fluent-light.css +1 -1
  105. package/styles/igniteui-indigo-dark.css +1 -1
  106. package/styles/igniteui-indigo-light.css +1 -1
  107. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  108. package/styles/maps/igniteui-angular.css.map +1 -1
  109. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  110. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  111. package/styles/maps/igniteui-dark-green.css.map +1 -1
  112. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  113. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  114. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  115. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  116. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  117. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  118. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  119. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  120. package/types/igniteui-angular-calendar.d.ts +1 -1
  121. package/types/igniteui-angular-combo.d.ts +55 -12
  122. package/types/igniteui-angular-core.d.ts +64 -11
  123. package/types/igniteui-angular-date-picker.d.ts +3 -4
  124. package/types/igniteui-angular-directives.d.ts +50 -164
  125. package/types/igniteui-angular-drop-down.d.ts +76 -4
  126. package/types/igniteui-angular-grids-core.d.ts +63 -28
  127. package/types/igniteui-angular-grids-grid.d.ts +2 -7
  128. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +5 -4
  129. package/types/igniteui-angular-grids-pivot-grid.d.ts +11 -5
  130. package/types/igniteui-angular-grids-tree-grid.d.ts +1 -1
  131. package/types/igniteui-angular-icon.d.ts +1 -1
  132. package/types/igniteui-angular-input-group.d.ts +1 -2
  133. package/types/igniteui-angular-query-builder.d.ts +1 -1
  134. package/types/igniteui-angular-radio.d.ts +16 -1
  135. package/types/igniteui-angular-select.d.ts +1 -2
  136. package/types/igniteui-angular-simple-combo.d.ts +7 -0
  137. package/types/igniteui-angular-stepper.d.ts +1 -1
  138. package/types/igniteui-angular-time-picker.d.ts +1 -2
  139. package/types/igniteui-angular-tree.d.ts +3 -3
  140. package/types/igniteui-angular-virtual-scroll.d.ts +408 -0
  141. package/types/igniteui-angular.d.ts +1 -0
  142. package/virtual-scroll/README.md +332 -0
@@ -50,6 +50,9 @@ public dataLoading(evt): void {
50
50
  What the combo exposes is a `virtualizationState` property that gives state of the combo - first index and the number of items that needs to be loaded.
51
51
  The service, should inform the combo for the total items that are on the server - using the `totalItemCount` property.
52
52
 
53
+ Remote paging follows the same [request and total-count behavior as Combo](../combo/README.md#usage),
54
+ including cancelling superseded requests and refreshing the list when only `totalItemCount` changes.
55
+
53
56
  ## Features
54
57
 
55
58
  ### Selection
@@ -17,6 +17,7 @@
17
17
  - [Slider](#slider)
18
18
  - [Autocomplete](#autocomplete)
19
19
  - [Reactive Forms Integration](#reactive-forms-integration)
20
+ - [Signal Forms Integration](#signal-forms-integration)
20
21
  - [Key Rules](#key-rules)
21
22
 
22
23
  ## Input Group
@@ -289,6 +290,63 @@ export class MyFormComponent {
289
290
  }
290
291
  ```
291
292
 
293
+ ## Signal Forms Integration
294
+
295
+ The same controls bind to Angular Signal Forms through `[formField]`. Required, disabled, touched and validity state flow from the field; no `ReactiveFormsModule` is needed.
296
+
297
+ ```typescript
298
+ import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
299
+ import { FormField, disabled, form, required, submit } from '@angular/forms/signals';
300
+ import { IGX_INPUT_GROUP_DIRECTIVES } from 'igniteui-angular/input-group';
301
+ import { IgxSelectComponent, IgxSelectItemComponent } from 'igniteui-angular/select';
302
+ import { IgxCheckboxComponent } from 'igniteui-angular/checkbox';
303
+
304
+ @Component({
305
+ selector: 'app-signup',
306
+ imports: [FormField, IGX_INPUT_GROUP_DIRECTIVES, IgxSelectComponent, IgxSelectItemComponent, IgxCheckboxComponent],
307
+ changeDetection: ChangeDetectionStrategy.OnPush,
308
+ template: `
309
+ <form (submit)="onSubmit($event)">
310
+ <igx-input-group>
311
+ <label igxLabel>Name</label>
312
+ <input igxInput [formField]="signup.name" />
313
+ @for (error of signup.name().errors(); track error.kind) {
314
+ <igx-hint>{{ error.message }}</igx-hint>
315
+ }
316
+ </igx-input-group>
317
+
318
+ <igx-select [formField]="signup.role">
319
+ <label igxLabel>Role</label>
320
+ @for (r of roles; track r) {
321
+ <igx-select-item [value]="r">{{ r }}</igx-select-item>
322
+ }
323
+ </igx-select>
324
+
325
+ <igx-checkbox [formField]="signup.terms">Accept terms</igx-checkbox>
326
+ <button type="submit">Sign up</button>
327
+ </form>
328
+ `
329
+ })
330
+ export class SignupComponent {
331
+ model = signal({ name: '', role: '', terms: false });
332
+ roles = ['Admin', 'User'];
333
+
334
+ signup = form(this.model, (path) => {
335
+ required(path.name, { message: 'Name is required' });
336
+ required(path.role);
337
+ required(path.terms);
338
+ disabled(path.role, { when: ({ valueOf }) => valueOf(path.name) === '' });
339
+ });
340
+
341
+ onSubmit(event: Event) {
342
+ event.preventDefault();
343
+ submit(this.signup, async () => undefined);
344
+ }
345
+ }
346
+ ```
347
+
348
+ `submit()` marks every field touched, so invalid controls show their error state the same way a reactive `markAllAsTouched()` does.
349
+
292
350
  ## Key Rules
293
351
 
294
352
  - **Always check `app.config.ts` first** — add `provideAnimations()` before using Combo, Select, Date Picker, or any overlay component