Skip to content

Commit 3702ec7

Browse files
committed
Merge branch 'master' of https://github.com/IgniteUI/igniteui-angular into vkombov/fix-17521
# Conflicts: # projects/igniteui-angular/grids/core/src/filtering/excel-style/excel-style-search.component.ts
2 parents 104a36e + 2b62863 commit 3702ec7

444 files changed

Lines changed: 8437 additions & 6127 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ Domain-specific skills for AI-assisted development are located in the [`skills/`
122122
- [`skills/igniteui-angular-grids`](../skills/igniteui-angular-grids/SKILL.md) — Data Grids (grid type selection, column config, sorting, filtering, selection, editing, grouping, paging, remote data, state persistence, Tree Grid, Hierarchical Grid, Grid Lite, Pivot Grid)
123123
- [`skills/igniteui-angular-theming`](../skills/igniteui-angular-theming/SKILL.md) — Theming & Styling (includes MCP server setup)
124124
- [`skills/igniteui-angular-generate-from-image-design`](../skills/igniteui-angular-generate-from-image-design/SKILL.md) — Generate Angular views from screenshots, mockups, and wireframes with Ignite UI components and theming guidance
125+
- [`skills/igniteui-angular-figma-to-app`](../skills/igniteui-angular-figma-to-app/SKILL.md) — Translate Figma app screens built with the Indigo.Design UI Kits into Angular apps (Figma-to-component mapping, design token bridging, asset extraction, visual validation)
125126
- [`.github/skills/igniteui-angular-build`](skills/igniteui-angular-build/SKILL.md) — Building the library (full build, `build:lib`, partial builds for styles, migrations, schematics, i18n, elements)
126127
- [`.github/skills/igniteui-angular-testing`](skills/igniteui-angular-testing/SKILL.md) — Testing (choosing the right test suite, grid vs non-grid, watch mode, schematics/styles/i18n tests)
127128
- [`.github/skills/igniteui-angular-linting`](skills/igniteui-angular-linting/SKILL.md) — Linting (ESLint + Stylelint, `lint:lib`, configuration files)

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
All notable changes for each version of this project will be documented in this file.
44

5+
## 22.2.0
6+
7+
### New Features
8+
9+
- `IgxChipComponent`
10+
- Added the `outlined` property to the component. When set to `true`, the Chip will have an outlined style.
11+
12+
- **Theming**
13+
- **Breaking Change** - The `chip-theme` properties - `$focus-outline-color` and `$focus-selected-outline-color` were replaced with `$focus-shadow-color` and `$focus-selected-shadow-color`.
14+
- Scrollbars are now styled with the standard `scrollbar-color` and `scrollbar-width` properties instead of the `::-webkit-scrollbar-*` pseudo-elements. Scrollbars rendered inside a themed host - `igx-grid` and the rest of the grid family, `igx-query-builder`, `igx-column-actions` and the Excel-style filtering menus - follow that host's own background and foreground colors. Because both properties resolve their `var()` references on the element that declares them and descendants inherit the already-resolved value, every scope that overrides the `scrollbar-theme` tokens must also re-declare the properties; the library does this internally for the hosts listed above.
15+
16+
### Breaking Changes
17+
18+
- **Theming** - The standard scrollbar properties expose only two colors and three width keywords, so most `scrollbar-theme` properties no longer have any effect. `$sb-thumb-bg-color` and `$sb-track-bg-color` continue to work. The following have become no-ops: `$sb-thumb-bg-color-hover`, `$sb-track-bg-color-hover`, `$sb-thumb-min-height`, `$sb-thumb-border-color`, `$sb-thumb-border-size`, `$sb-thumb-border-radius`, `$sb-track-border-color`, `$sb-track-border-size`, `$sb-corner-bg`, `$sb-corner-border-color` and `$sb-corner-border-size`. They remain valid arguments to `scrollbar-theme()`, so existing themes keep compiling, but the values are ignored. The `ng update` migration for 22.2.0 removes these arguments from existing `scrollbar-theme(...)` calls automatically.
19+
- **Theming** - `$sb-size` no longer sets the scrollbar thickness. `scrollbar-width` accepts only `auto`, `thin` or `none`, so a length cannot drive it. The migration removes `$sb-size` along with the properties above; set `--sb-width: thin` on the scope that declares the scrollbar tokens, or `scrollbar-width: thin` directly on the scrolling element, where a thinner scrollbar is required.
20+
21+
### Behavioral Changes
22+
23+
- **Theming** - Scrollbar arrow buttons cannot be styled or enabled through the standard properties, and `scrollbar-width: thin` removes them where the platform draws them.
24+
- **Firefox** - The `scrollbar-color` and `scrollbar-width` properties are not supported on Firefox versions prior to 64, so the scrollbars in those versions will render with the platform default colors and size.
25+
526
## 22.1.0
627

728
### New Features
@@ -65,9 +86,18 @@ All notable changes for each version of this project will be documented in this
6586
- Removed the per-component `-typography` mixins (`badge-typography`, `dialog-typography`, `checkbox-typography`, etc.). Typography is now applied automatically as part of each component's tokens, so these standalone calls are no longer needed. The `ng update` migration deletes existing calls (including multi-line and aliased calls) automatically.
6687
- Removed the deep Sass imports of per-component structural partials (e.g. `igniteui-angular/lib/core/styles/components/avatar/avatar-component`) and their `component()` mixin calls. Structural styles are no longer optionally-included Sass — they now ship automatically with each component's bundle. The `ng update` migration removes these `@use` statements and matching `component()` calls automatically.
6788
- `IgxDividerDirective` has been replaced by `IgxDividerComponent` (divider is now a standalone component with its own scoped stylesheet). The `ng update` migration updates existing imports/usages automatically; `IgxDividerModule` is unaffected.
89+
- Some exports moved to a different entry point. An optional (recommended) `ng update` migration rewrites the affected imports automatically:
90+
- `igniteui-angular/grids/core` → `igniteui-angular/core`: `IgxSummaryOperand`, `IgxNumberSummaryOperand`, `IgxDateSummaryOperand`, `IgxTimeSummaryOperand`, `GridSelectionRange`, `ISelectionNode`, `IMultiRowLayoutNode`, `ISelectionKeyboardState`, `ISelectionPointerState`, `IColumnSelectionState`, `SelectionState`, `IgxGridTransaction`.
91+
- `igniteui-angular/grids/grid` → `igniteui-angular/grids/core`: `IGroupingDoneEventArgs`.
92+
- `IgSizeDirective` (`[igSize]`) is no longer part of the public API and is no longer exported from `igniteui-angular/directives`. Set the size directly on the element instead, e.g. `style="--ig-size: var(--ig-size-small)"`, or via a component stylesheet.
6893

6994
### General
7095

96+
- **Strict TypeScript** - The library is now built with `strict: true` (including `strictNullChecks`) and `strictTemplates`. The shipped typings are therefore more accurate: members that can be absent are now typed as nullable or optional, and a number of `any` types were replaced with real ones (for example `ColumnType.summaries` is now `IgxSummaryOperand` and `ColumnType.calcWidth` is `string | number | null`). Applications compiled in strict mode may need null checks or non-null assertions where the previous, looser typings allowed the code to pass. Runtime behavior is unchanged.
97+
98+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`, `IgxPivotGrid`, `IgxColumnComponent`
99+
- The `rowStyles`, `headerStyles` and `headerGroupStyles` inputs are now typed `GridStyleCSSProperty | null` instead of `any`. The new `GridStyleCSSProperty` interface is exported from `igniteui-angular/core`.
100+
71101
- **Removed Hammer.js dependency**
72102
- The `hammerjs` and `@types/hammerjs` peer dependencies have been removed. All touch gesture support (Carousel swipe, Navigation Drawer pan/swipe, List Item pan, Time Picker vertical scroll, Grid Cell double-tap on iOS) is now implemented with native Pointer Events / Touch Events APIs.
73103
- `HammerGesturesManager` and related types (`HammerInput`, `HammerStatic`, `HammerManager`, `HammerOptions`) are no longer exported from `igniteui-angular/core`.
@@ -185,6 +215,9 @@ All notable changes for each version of this project will be documented in this
185215
- Introduced the `selectionChanged` event for both components. The event is not cancelable and is emitted after the selection is committed and the component state is updated.
186216
- Added `disableClear` input that allows hiding the clear button even when items are selected. Defaults to `false`.
187217

218+
- `IgxPivotGrid`
219+
- Added `headerFormatter` optional property to `IPivotDimension`. This is a display-only callback `(value, dimension?, rowData?) => string | null | undefined` applied when rendering row and column dimension header text. Returning `null` or `undefined` falls back to the raw dimension value. The `IgxPivotDateDimension` uses this to render `fullDate` leaf values in a locale-aware short-date format automatically.
220+
188221
### General
189222

190223
- `IgxOverlayService`

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ This repository ships with **Copilot Skills** — structured knowledge files tha
5050
| Data Grids | [`skills/igniteui-angular-grids/SKILL.md`](skills/igniteui-angular-grids/SKILL.md) | Data Grids (grid type selection, column config, sorting, filtering, selection, editing, grouping, paging, remote data, state persistence, Tree Grid, Hierarchical Grid, Grid Lite, Pivot Grid) |
5151
| Theming & Styling | [`skills/igniteui-angular-theming/SKILL.md`](skills/igniteui-angular-theming/SKILL.md) | Theming & Styling (includes MCP server setup) |
5252
| Generate From Image Design | [`skills/igniteui-angular-generate-from-image-design/SKILL.md`](skills/igniteui-angular-generate-from-image-design/SKILL.md) | Build Angular views from screenshots, mockups, and wireframes using Ignite UI components, theming MCP tools, and image-to-layout/component mapping guidance |
53+
| Figma to App | [`skills/igniteui-angular-figma-to-app/SKILL.md`](skills/igniteui-angular-figma-to-app/SKILL.md) | Translate Figma app screens built with the Indigo.Design UI Kits (Material, Fluent, Bootstrap, Indigo) into Angular apps — 1:1 Figma component to Ignite UI control mapping, design token bridging, asset extraction, and visual validation against the original design |
5354

5455
#### How It Works
5556

ROADMAP.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,34 @@
22

33
# Current Milestone
44

5-
## Milestone 43, version 22.0 (Due by Jun, 2026)
6-
1. Support for Angular 22
5+
## Milestone 45, version 23.0 (Due by Nov, 2026)
6+
1. Color Picker component [#12821](https://github.com/IgniteUI/igniteui-angular/issues/12821)
7+
2. Breadcrumb component [#6642](https://github.com/IgniteUI/igniteui-angular/issues/6642)
8+
4. Transition the library to signals
79

810
## Going down the road
911

1012
1. Transition the library to signals
11-
2. Zoneless support
13+
2. Grid calculated fields
1214

1315
# Previous Milestone
1416

17+
## Milestone 44, version 22.1 (Released Aug 26th, 2026)
18+
1. **[DONE]** Full zoneless support - the library no longer depends on `NgZone` for change detection, so applications can run zoneless or keep using Zone.js with no behavioral differences
19+
2. **[DONE]** Scope component styles to component - The `tokens()` mixin is now the single way to apply a component theme, replacing the per-component wrapper and typography mixins across the rest of the library [#13770](https://github.com/IgniteUI/igniteui-angular/issues/13770)
20+
3. **[DONE]** Strict TypeScript - the library is built with `strict: true` and `strictTemplates: true`, so the shipped typings are more accurate [#17483](https://github.com/IgniteUI/igniteui-angular/pull/17483)
21+
4. **[DONE]** Removed the `hammerjs` peer dependency - all touch gesture support is now implemented with native Pointer and Touch Events
22+
5. **[DONE]** `IgxDividerComponent` replaces `IgxDividerDirective`
23+
6. **[DONE]** Scoped, tree-shakable component styles - structural styles ship inside each component's own bundle instead of a single global stylesheet, making the pre-built themes roughly half the size [#15125](https://github.com/IgniteUI/igniteui-angular/pull/15125)
24+
25+
## Milestone 43, version 22.0 (Released Jun 24th, 2026)
26+
1. **[DONE]** Support for Angular 22
27+
2. **[DONE]** Derived themes for the Grid, Excel Filtering, Grid Toolbar, Paginator, Column Actions and Query Builder - nested buttons, icons, inputs, dropdowns, checkboxes, scrollbars and chips derive their tokens from the parent component theme
28+
3. **[DONE]** New dedicated `excel-filtering-theme()` for styling the Excel Style Filtering
29+
4. **[DONE]** `IgxSelectComponent` - `AutoPositionStrategy` is now the default positioning strategy; the new publicly exported `IgxSelectOverlapPositionStrategy` preserves the previous behavior
30+
5. **[DONE]** `IgxInputGroupComponent`, `IgxSelectComponent`, `IgxDatePickerComponent`, `IgxDateRangePickerComponent`, `IgxTimePickerComponent` - default `type` changed from `line` to `box`
31+
6. **[DONE]** `IgxCarouselComponent` - improved default tab order, focus now flows starting with the active slide indicator
32+
1533
## Milestone 42, version 21.2 (Released Apr 27th, 2026), [Release Blog 21.2](https://www.infragistics.com/blogs/ignite-ui-cli-mcp-release)
1634
1. **[DONE]** `IgxCombo`, `IgxSimpleCombo` - Introduced `selectionChanged` event and `disableClear` input
1735
2. **[DONE]** `IgxSnackbarComponent`, `IgxToastComponent` - New `positioning` input for container-based placement

SECURITY.md

Lines changed: 89 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
# Security Policy
22

3+
This document describes how to report security vulnerabilities in Ignite UI for Angular and which versions receive security updates.
4+
35
## Supported Versions
46

7+
Ignite UI for Angular releases track the Angular release cadence. We provide security fixes for the latest release and for the long-term supported versions listed below:
8+
59
| Version | Supported |
610
| --------- | ------------------ |
7-
| 22.0.x | :white_check_mark: |
11+
| 22.1.x | :white_check_mark: |
12+
| 22.0.x | :x: |
813
| 21.2.x | :white_check_mark: |
914
| 21.1.x | :x: |
1015
| 21.0.x | :x: |
@@ -15,4 +20,86 @@
1520

1621
## Reporting a Vulnerability
1722

18-
Please report any suspected vulnerability through the [issues](../../issues) section.
23+
Please **do not** open a public GitHub issue for security vulnerabilities.
24+
25+
Instead, report privately using one of the following methods (preferred first):
26+
27+
1. **GitHub Private Vulnerability Reporting (recommended)**
28+
- Go to the repository's **Security** tab and use **Report a vulnerability**.
29+
30+
2. **Email**
31+
- Send details to: **igniteui@infragistics.com**
32+
33+
3. **Support Case**
34+
- If you are a registered Infragistics user, you can report the vulnerability through a support case at (https://account.infragistics.com/support-cases)
35+
36+
If none of these options is available, contact the maintainers privately. Only use the public issue tracker for **non-security** bugs.
37+
38+
### What to include
39+
40+
To help us triage quickly, include:
41+
42+
- A clear description of the vulnerability and its impact
43+
- Steps to reproduce (proof-of-concept if possible)
44+
- Affected versions and/or commit hash
45+
- The affected package (`igniteui-angular`, `igniteui-angular-i18n`, `igniteui-angular-elements`, etc.) and the component or directive involved
46+
- Your Angular version and browser, where relevant
47+
- Any relevant logs or stack traces (sanitize secrets)
48+
- Your assessment of severity (optional)
49+
- Suggested fix or mitigation (optional)
50+
51+
### Sensitive information
52+
53+
- Do **not** include secrets, tokens, private keys, or real customer data.
54+
- If sensitive data is required to demonstrate the issue, redact it and describe the expected format.
55+
56+
## Disclosure Process
57+
58+
After receiving a report, we aim to follow this process:
59+
60+
1. **Acknowledgement**: within **3 business days**
61+
2. **Triage** (severity assessment + scope): within **7 business days**
62+
3. **Fix development**: timeline depends on severity and complexity
63+
4. **Release**: we will publish a patch release and/or mitigation guidance
64+
5. **Advisory**: we may publish a GitHub Security Advisory (crediting reporters who want it)
65+
66+
We may request additional information during triage.
67+
68+
## Severity and Prioritization
69+
70+
We prioritize issues using impact and exploitability, informed by CVSS where appropriate:
71+
72+
- **Critical**: remote code execution, authentication bypass, significant data exposure
73+
- **High**: privilege escalation, cross-site scripting that bypasses Angular's sanitization, major denial of service, sensitive information leaks
74+
- **Medium/Low**: limited impact, edge cases, or hard-to-exploit issues
75+
76+
## Scope
77+
78+
In scope: the packages published from this repository and the code that builds them.
79+
80+
Out of scope, and better reported elsewhere:
81+
82+
- Vulnerabilities in Angular itself — report to the [Angular project](https://github.com/angular/angular/security/policy)
83+
- Vulnerabilities in third-party dependencies — report to the upstream project; tell us as well if Ignite UI for Angular exposes the issue to consumers
84+
- Findings that require an application to bypass Angular's built-in sanitization (for example, passing untrusted markup through `bypassSecurityTrustHtml`), unless our components do so on the application's behalf
85+
- Issues in our sample applications, documentation sites, or infrastructure that do not affect the shipped packages
86+
87+
## Coordinated Vulnerability Disclosure
88+
89+
We support coordinated disclosure and ask that you:
90+
91+
- Give us a reasonable window to fix before public disclosure
92+
- Avoid exploiting the vulnerability beyond what is necessary to prove it exists
93+
- Avoid actions that degrade service availability or compromise user data
94+
95+
## Security Updates
96+
97+
Security fixes may be communicated via one or more of:
98+
99+
- GitHub Security Advisories
100+
- Release notes / [changelog](CHANGELOG.md)
101+
- npm advisories for the affected packages
102+
103+
## Acknowledgements
104+
105+
We appreciate responsible disclosures. If you'd like public credit, tell us how you want to be acknowledged.

cypress/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
"extends": "../tsconfig.json",
33
"include": ["**/*.ts"],
44
"compilerOptions": {
5+
/* TODO: interim override — remove once cypress specs are migrated to strict */
6+
"strict": false,
7+
"noImplicitOverride": true,
58
"sourceMap": false,
69
"types": ["cypress"]
710
}

0 commit comments

Comments
 (0)