Skip to content

Commit 7ef491a

Browse files
committed
Merge remote-tracking branch 'origin/master' into sstoychev/trigger-new-api-loc
2 parents 0cee0a7 + 56e2713 commit 7ef491a

File tree

105 files changed

+3475
-1308
lines changed

Some content is hidden

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

105 files changed

+3475
-1308
lines changed

.github/AGENTS-README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,15 +401,32 @@ CHANGELOG.md root changelog
401401
src/app/<component>/ demo pages
402402
```
403403

404-
The system also relies on repository-specific guidance in:
404+
The system also relies on repository-specific guidance and internal operational skills in:
405405

406406
```text
407407
.github/copilot-instructions.md
408408
skills/igniteui-angular-components/SKILL.md
409409
skills/igniteui-angular-grids/SKILL.md
410410
skills/igniteui-angular-theming/SKILL.md
411+
.github/skills/igniteui-angular-build/SKILL.md
412+
.github/skills/igniteui-angular-testing/SKILL.md
413+
.github/skills/igniteui-angular-linting/SKILL.md
411414
```
412415

416+
Repository-specific skills for implementation guidance:
417+
418+
- `igniteui-angular-components` — shared guidance for general component patterns, structure, and repository conventions.
419+
- `igniteui-angular-grids` — shared guidance for grid architecture, patterns, and grid-specific implementation work.
420+
- `igniteui-angular-theming` — shared guidance for SCSS structure, theme wiring, and style-system conventions.
421+
422+
The internal operational skills are shared references for repository commands and validation flow:
423+
424+
- `igniteui-angular-build` — build command reference for full and partial builds such as library, schematics, migrations, elements, i18n, and related repo build targets.
425+
- `igniteui-angular-testing` — test suite selection guide, Karma config mapping, and command reference for choosing the smallest relevant test run.
426+
- `igniteui-angular-linting` — lint command reference, ESLint and Stylelint config locations, and lint expectations before work is considered complete.
427+
428+
Orchestrators should use these skills for command selection instead of repeating command lists inline.
429+
413430
---
414431

415432
## Maintenance Notes

.github/CONTRIBUTING.md

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -88,38 +88,15 @@ Accessibility is an integral part of any UI component. We as a team are committe
8888
2. `status: localized` this status is for issues that were with a pending translation status and have already been localized. Place this status label once these translation changes have been included in the current pull request, or the changes are already pulled with a different pull request.
8989

9090
## Localization (i18n) - applicable to components' string resources
91-
There are several ways to localize components' string resources:
91+
There are several ways to localize components' string resources. For more information on how it works, refer to our [Documentation - Localization (i18n)](https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/localization#localization-i18n-1).
9292

93-
1. Using custom resource strings:
94-
1.1. Localize a given instance of component - each component which supports localization has input property `resourceStrings`. Setting a newly instantiated object to this property will localize only that given component's instance.
95-
1.2. Localize all resources for a component type - each component which supports localization has input property `resourceStrings`. To localize all instances of a given component in the application the following steps should be performed - get the value of the input property `resourceStrings` of the component to be localized; do not create a new instance but replace the existing strings within the object. By default all components of a given type in an application share one instance of the resource strings. Replacing a value in that instance affects all components of that type in the application.
96-
1.3. Localize all resources for all components - use global method `getCurrentResourceStrings` to get an object containing current resource strings for all components. To provide localized resources just pass an object of type `IResourceStrings` to the global method `changei18n`.
97-
1.4 As of 21.1.x the localization has new implementation and you can use the new API `registerI18n` to register resource string for a component or all components for the whole app, as well as which locale it corresponds to. To localize a single component you will need to get is corresponding resource string keys using one of the available resources and provide only those keys.
93+
**NOTE** As of 21.1.x, the localization resource strings have been moved to the [`igniteui-i18n`](https://github.com/IgniteUI/igniteui-i18n) repository under `projects/igniteui-i18n-resources`. The package `igniteui-angular-i18n` under `./projects/igniteui-angular-i18n` remains as a source of the localization resources for Ignite UI for Angular, that derives the resources from [`igniteui-i18n`](https://github.com/IgniteUI/igniteui-i18n).
9894

99-
2. Using npm package:
100-
We've created new repository which will hold the resource strings for languages different than English:
101-
https://github.com/IgniteUI/igniteui-angular-i18n
102-
103-
**NOTE** The localization repo has been moved to live inside the `igniteui-angular` repository under `./projects/igniteui-angular-i18n`
104-
**NOTE** As of 21.1.x the localization resource strings have been moved to the [`igniteui-i18n`](https://github.com/IgniteUI/igniteui-i18n) repository under `projects/igniteui-i18n-resources`.
95+
**NOTE (21.0.x and lower)** The localization resource strings live inside the `igniteui-angular` repository under `./projects/igniteui-angular-i18n`.
10596

10697
A npm package should be published each time we release new version of Ignite UI for Angular. Its version should correspond to the version of the igniteui-angular npm package.
10798
One could localize an application by importing the corresponding localized resource strings from the localization package (`igniteui-angular-i18n`) and use the methods described in the previous bullet to localize the whole application or part of it.
10899

109-
**Example:**
110-
111-
Inside app.module you can perform:
112-
```ts
113-
import { IgxResouceStringsJA } fromigniteui-angular-i18n’;
114-
changei18n(IgxResouceStringsJA);
115-
```
116-
117-
**Example new API:**
118-
```ts
119-
import { ResouceStringsJA } fromigniteui-i18n-resources’;
120-
registerI18n(IgxResouceStringsJA, 'ja');
121-
```
122-
123100
### Resource strings keys naming convention
124101
Each key in the `IResourceStrings` (and `IGridResourceStrings`, `ITimePickerResourceStrings`, etc.) is prefixed with components' selector and followed by the resource string key. Having components' selectors as prefixes allows us to have same resource strings keys for more than one component.
125102
Example: _igx_grid_groupByArea_message_.

.github/agents/bug-fixing-orchestrator-agent.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,9 @@ Do not add sections such as:
109109

110110
---
111111

112-
## Component-Specific Patterns
113-
114-
Check the relevant skill file for component APIs and patterns:
115-
- Non-grid components → `skills/igniteui-angular-components/SKILL.md`
116-
- Grid components → `skills/igniteui-angular-grids/SKILL.md`
117-
- Theming & styling → `skills/igniteui-angular-theming/SKILL.md`
118-
119-
Each skill file is a routing hub pointing to detailed reference files under its `references/` folder. **Read the relevant reference files** when investigating the root cause.
120-
121-
If the bug touches component SCSS or theme wiring, read `skills/igniteui-angular-theming/references/contributing.md` during investigation and plan a dedicated `theming-styles-agent` handoff.
112+
> Skills:
113+
> - APIs: `skills/igniteui-angular-{components,grids,theming}/SKILL.md`
114+
> - Build / test / lint: `.github/skills/`
122115
123116
---
124117

@@ -172,10 +165,15 @@ Present a brief scope summary to the user:
172165

173166
Keep it short and high-level. Confirm scope, not solution details.
174167

175-
Wait for user confirmation.
168+
Before routing any work, ask:
169+
170+
**`Do you want me to proceed with this implementation flow?`**
171+
172+
If the fix is user-visible, also ask:
173+
174+
**`Do you want a demo/sample update for this feature?`**
176175

177-
If a demo/sample is relevant, ask explicitly:
178-
`Do you want a demo/sample update for this change? Yes / No`
176+
Wait for the user's answer before routing work.
179177

180178
### Step 4 — Route Work
181179

@@ -218,6 +216,7 @@ After all agents finish, check:
218216
- If a demo/sample was requested, was the existing demo structure updated appropriately?
219217
- If a demo/sample was not requested, was it correctly skipped?
220218
- Is multi-branch cherry-picking needed?
219+
- Run `npm run lint:lib` and verify it passes.
221220

222221
Report what was done and any remaining items.
223222

.github/agents/feature-orchestrator-agent.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ Do not add sections such as:
103103

104104
---
105105

106+
> Skills:
107+
> - APIs: `skills/igniteui-angular-{components,grids,theming}/SKILL.md`
108+
> - Build / test / lint: `.github/skills/`
109+
110+
---
111+
106112
## Key Repository Paths
107113

108114
```
@@ -132,7 +138,7 @@ projects/igniteui-angular/core/src/core/styles/ ← component SCSS themes
132138
- Whether a migration schematic is needed
133139
- Whether i18n strings are affected
134140
- Whether styles or component themes are affected
135-
- Which test suite to use (grid vs non-grid)
141+
- Which test suite to use (grid vs non-grid vs schematics/styles/i18n)
136142

137143
### Step 2 — Request Missing Context
138144

@@ -153,10 +159,15 @@ Present a brief scope summary to the user:
153159

154160
Keep it short and high-level. Confirm scope, not solution details.
155161

156-
Wait for user confirmation.
162+
Before routing any work, ask:
163+
164+
**`Do you want me to proceed with this implementation flow?`**
165+
166+
If the feature is user-visible, also ask:
167+
168+
**`Do you want a demo/sample update for this feature?`**
157169

158-
If a demo/sample is relevant, ask explicitly:
159-
`Do you want a demo/sample update for this feature? Yes / No`
170+
Wait for the user's answer before routing work.
160171

161172
### Step 4 — Route Work
162173

@@ -202,5 +213,6 @@ After all agents finish, check:
202213
- Do migrations exist for any breaking changes?
203214
- If a demo/sample was requested, was the existing demo structure updated appropriately?
204215
- If a demo/sample was not requested, was it correctly skipped?
216+
- Run `npm run lint:lib` and verify it passes.
205217

206218
Report what was done and any remaining items.

.github/copilot-instructions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,6 @@ Domain-specific skills for AI-assisted development are located in the [`skills/`
121121
- [`skills/igniteui-angular-components`](../skills/igniteui-angular-components/SKILL.md) — UI Components (form controls, layout, data display, feedback/overlays, directives — Input Group, Combo, Select, Date/Time Pickers, Calendar, Tabs, Stepper, Accordion, List, Card, Dialog, Snackbar, Button, Ripple, Tooltip, Drag and Drop, Layout Manager, Dock Manager) and Charts (Area Chart, Bar Chart, Column Chart, Stock/Financial Chart, Pie Chart)
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)
124+
- [`.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)
125+
- [`.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)
126+
- [`.github/skills/igniteui-angular-linting`](skills/igniteui-angular-linting/SKILL.md) — Linting (ESLint + Stylelint, `lint:lib`, configuration files)
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
name: igniteui-angular-build
3+
description: "Quick-reference for building the core Ignite UI for Angular library and related packages. Covers the full production build (`build:lib`), individual partial builds (styles, extras, migrations, schematics, i18n, elements), and the combined build-all command. Use when an agent needs to compile the library, produce a dist output, or verify that code changes compile cleanly. Do NOT use for running tests — use igniteui-angular-testing instead. Do NOT use for linting — use igniteui-angular-linting instead."
4+
user-invocable: true
5+
---
6+
7+
# Ignite UI for Angular — Build
8+
9+
Quick-reference card for the core library and related build commands in this repository.
10+
11+
## Prerequisites
12+
13+
- Run `npm install` at the repo root before any build command.
14+
15+
## Full Build
16+
17+
```bash
18+
npm run build
19+
```
20+
21+
Runs all sub-builds in sequence (library, elements, schematics, migrations, i18n, extras). Use this when you need a complete publishable output or before running the full CI pipeline locally. Check `package.json` for the exact sequence.
22+
23+
## Library Build (most common)
24+
25+
```bash
26+
npm run build:lib
27+
```
28+
29+
This is the primary build command. It does two things:
30+
31+
1. `ng build igniteui-angular --configuration production` — compiles the library with ng-packagr using Angular Package Format. Uses `ng-package.prod.json` (production config).
32+
2. `npm run build:styles` — runs `node scripts/build-styles.mjs` to compile and bundle Sass themes into distributable CSS.
33+
34+
**Output**: `dist/igniteui-angular/`
35+
36+
### When to use `build:lib`
37+
38+
- After implementing a feature or fix, to verify the code compiles.
39+
- Before checking that new public symbols are correctly exported.
40+
- When another project needs to consume a local build of the library.
41+
42+
## Partial Builds
43+
44+
| Command | What it does |
45+
|---|---|
46+
| `npm run build:styles` | Compiles Sass themes only (`scripts/build-styles.mjs`). Already included in `build:lib`. |
47+
| `npm run build:extras` | Builds the extras package and then runs extras migrations. |
48+
| `npm run build:schematics` | Copies and compiles `ng add` schematics (`projects/igniteui-angular/schematics/`). |
49+
| `npm run build:migrations` | Copies and compiles `ng update` migration schematics (`projects/igniteui-angular/migrations/`). |
50+
| `npm run build:i18n` | Compiles the i18n package (`projects/igniteui-angular-i18n/`). |
51+
| `npm run build:elements` | Builds the Angular Elements package + bundling + style copy. |
52+
| `npm run build:docs` | Generates TypeDoc + SassDoc documentation. |
53+
54+
### When to use partial builds
55+
56+
- **`build:schematics`** — after editing files under `projects/igniteui-angular/schematics/`.
57+
- **`build:migrations`** — after editing files under `projects/igniteui-angular/migrations/`. Required before running `test:schematics`.
58+
- **`build:extras`** — after editing the extras package or when validating the full root `build` flow.
59+
- **`build:i18n`** — after changing i18n resource strings.
60+
- **`build:elements`** — when working on the Angular Elements wrapper.
61+
62+
## Key Paths
63+
64+
| Path | Purpose |
65+
|---|---|
66+
| `projects/igniteui-angular/` | Library source root |
67+
| `projects/igniteui-angular/ng-package.prod.json` | Production ng-packagr config |
68+
| `projects/igniteui-angular/ng-package.json` | Dev ng-packagr config (preserves dest) |
69+
| `dist/igniteui-angular/` | Build output |
70+
| `scripts/build-styles.mjs` | Sass theme compilation script |
71+
72+
## Related Skills
73+
74+
- [`igniteui-angular-testing`](../igniteui-angular-testing/SKILL.md) — Running tests
75+
- [`igniteui-angular-linting`](../igniteui-angular-linting/SKILL.md) — Linting code and styles
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
name: igniteui-angular-linting
3+
description: "Quick-reference for linting the core Ignite UI for Angular library. Covers the combined lint command (`lint:lib`), ESLint for TypeScript and templates, and Stylelint for Sass/SCSS styles. Use when an agent needs to run the main linters, fix lint errors, or understand the primary lint configuration. Do NOT use for building — use igniteui-angular-build instead. Do NOT use for running tests — use igniteui-angular-testing instead."
4+
user-invocable: true
5+
---
6+
7+
# Ignite UI for Angular — Linting
8+
9+
Quick-reference card for the core lint commands for the main library in this repository.
10+
11+
## Prerequisites
12+
13+
- Run `npm install` at the repo root.
14+
15+
## Commands
16+
17+
| Command | What it runs |
18+
|---|---|
19+
| `npm run lint:lib` | ESLint **+** Stylelint (both — use this as the default) |
20+
| `npm run lint:styles` | Stylelint only (Sass/SCSS files) |
21+
| `npm run lint` | `ng lint` — ESLint only (TypeScript + templates) |
22+
| `ng lint --fix` | Quick fix for tool identifiable fixes |
23+
24+
### `lint:lib` (recommended)
25+
26+
```bash
27+
npm run lint:lib
28+
```
29+
30+
This is the combined command and the one agents should run before considering work complete. It executes:
31+
32+
1. `ng lint` — ESLint on TypeScript source and Angular templates, using the config at `projects/igniteui-angular/eslint.config.mjs`.
33+
2. `npm run lint:styles` — Stylelint on Sass files under `projects/igniteui-angular/core/src/core/styles`.
34+
35+
### Lint Styles Only
36+
37+
```bash
38+
npm run lint:styles
39+
```
40+
41+
Runs `stylelint "projects/igniteui-angular/core/src/core/styles"`. Use when you only changed SCSS/Sass and want a faster check.
42+
43+
## Configuration Files
44+
45+
| File | Purpose |
46+
|---|---|
47+
| `eslint.config.mjs` (repo root) | Root ESLint config |
48+
| `projects/igniteui-angular/eslint.config.mjs` | Library-specific ESLint config (referenced in `angular.json`) |
49+
| `.stylelintrc.json` (repo root) | Root Stylelint config used by `npm run lint:styles` |
50+
51+
## Agent Rules
52+
53+
- **Always run `npm run lint:lib` before marking work complete** — this is a requirement from [AGENTS.md](../../../AGENTS.md).
54+
- Fix all lint errors before committing. Do not disable rules without justification.
55+
- If a lint rule conflicts with the intended change, investigate whether the rule is correct before suppressing it.
56+
57+
## Related Skills
58+
59+
- [`igniteui-angular-build`](../igniteui-angular-build/SKILL.md) — Building the library
60+
- [`igniteui-angular-testing`](../igniteui-angular-testing/SKILL.md) — Running tests

0 commit comments

Comments
 (0)