Skip to content

Commit ecf043f

Browse files
authored
Merge branch 'master' into ganastasov/combo-escape-close-master
2 parents 987d62c + c2c1b8b commit ecf043f

File tree

33 files changed

+1612
-200
lines changed

33 files changed

+1612
-200
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/agents/bug-fixing-orchestrator-agent.md

Lines changed: 4 additions & 10 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

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

227221
Report what was done and any remaining items.
228222

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

Lines changed: 8 additions & 1 deletion
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

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

211218
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
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
name: igniteui-angular-testing
3+
description: "Quick-reference for running Ignite UI for Angular test suites. Covers the full test run (`test:lib`), grid-specific suites (grid, tree-grid, hierarchical-grid, pivot-grid), non-grid tests, watch mode, and auxiliary test suites (schematics, styles, i18n). Use when an agent needs to run, select, or understand the test infrastructure. Do NOT use for building — use igniteui-angular-build instead. Do NOT use for linting — use igniteui-angular-linting instead."
4+
user-invocable: true
5+
---
6+
7+
# Ignite UI for Angular — Testing
8+
9+
Quick-reference card for the core test commands for the main igniteui-angular library plus schematics, styles, and i18n suites.
10+
11+
## Prerequisites
12+
13+
- Run `npm install` at the repo root.
14+
- Schematics tests normally run from source and do not require a build first. Only run `npm run build:schematics` and `npm run build:migrations` when you specifically want to validate the compiled schematics or migrations output.
15+
- For performance tests: run `npm run build:lib` first, or at minimum `npm run build:styles`, because `test:lib:perf` loads `dist/igniteui-angular/styles/igniteui-angular.css`.
16+
17+
## Test Runner
18+
19+
- **Karma + Jasmine** for all library unit tests.
20+
- Karma configs live in `projects/igniteui-angular/karma*.conf.js`.
21+
- Coverage reports are written to `coverage/`.
22+
23+
## Choosing the Right Command
24+
25+
| Scenario | Command |
26+
|---|---|
27+
| **All library tests** (slow — runs everything) | `npm run test:lib` |
28+
| **Flat grid tests** only | `npm run test:lib:grid` |
29+
| **Tree grid tests** only | `npm run test:lib:tgrid` |
30+
| **Hierarchical grid tests** only | `npm run test:lib:hgrid` |
31+
| **Pivot grid tests** only | `npm run test:lib:pgrid` |
32+
| **All non-grid tests** (components, directives, services) | `npm run test:lib:others` |
33+
| **Watch mode** (re-runs on file changes, for dev loop) | `npm run test:lib:watch` |
34+
| **Performance tests** | `npm run test:lib:perf` |
35+
| **Schematics + migrations** | `npm run test:schematics` |
36+
| **Sass/style logic** | `npm run test:styles` |
37+
| **i18n resource validation** | `npm run test:i18n` |
38+
39+
### Decision Guide
40+
41+
1. **Working on a grid component?** → Use the matching grid command (`test:lib:grid`, `test:lib:tgrid`, `test:lib:hgrid`, or `test:lib:pgrid`).
42+
2. **Working on a non-grid component or directive?** → Use `test:lib:others`.
43+
3. **Iterating quickly during development?** → Use `test:lib:watch`.
44+
4. **Edited a migration or schematic?** → Use `test:schematics`. Build first only if you also need to validate compiled output.
45+
5. **Running performance tests?** → Build first (`build:lib` or at least `build:styles`), then use `test:lib:perf`.
46+
6. **Changed Sass theme logic?** → Use `test:styles`.
47+
7. **Changed i18n resource strings?** → Use `test:i18n`.
48+
8. **Final verification before marking work complete?** → Use `test:lib` (full suite).
49+
50+
## Karma Configs
51+
52+
| Config file | Used by |
53+
|---|---|
54+
| `karma.conf.js` | `test:lib` (all tests) |
55+
| `karma.grid.conf.js` | `test:lib:grid` |
56+
| `karma.tree-grid.conf.js` | `test:lib:tgrid` |
57+
| `karma.hierarchical-grid.conf.js` | `test:lib:hgrid` |
58+
| `karma.pivot-grid.conf.js` | `test:lib:pgrid` |
59+
| `karma.non-grid.conf.js` | `test:lib:others` |
60+
| `karma.watch.conf.js` | `test:lib:watch` |
61+
| `karma.test-perf.conf.js` | `test:lib:perf` (performance) |
62+
63+
All configs are in `projects/igniteui-angular/`.
64+
65+
## Key Paths
66+
67+
| Path | Purpose |
68+
|---|---|
69+
| `projects/igniteui-angular/test-utils/` | Shared test helpers and utilities |
70+
| `projects/igniteui-angular/src/test.ts` | Karma test entry point |
71+
| `coverage/` | Code coverage output |
72+
73+
## Related Skills
74+
75+
- [`igniteui-angular-build`](../igniteui-angular-build/SKILL.md) — Building the library
76+
- [`igniteui-angular-linting`](../igniteui-angular-linting/SKILL.md) — Linting code and styles

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ Domain-specific knowledge for AI assistants:
118118
| Components | [`skills/igniteui-angular-components/SKILL.md`](skills/igniteui-angular-components/SKILL.md) | Working on non-grid UI components, charts |
119119
| Grids | [`skills/igniteui-angular-grids/SKILL.md`](skills/igniteui-angular-grids/SKILL.md) | Working on grid, tree-grid, hierarchical-grid, pivot-grid |
120120
| Theming | [`skills/igniteui-angular-theming/SKILL.md`](skills/igniteui-angular-theming/SKILL.md) | Working on styles, themes, palettes |
121+
| Build | [`.github/skills/igniteui-angular-build/SKILL.md`](.github/skills/igniteui-angular-build/SKILL.md) | Building the library, producing dist output, compiling migrations/schematics |
122+
| Testing | [`.github/skills/igniteui-angular-testing/SKILL.md`](.github/skills/igniteui-angular-testing/SKILL.md) | Running test suites, choosing the right Karma config |
123+
| Linting | [`.github/skills/igniteui-angular-linting/SKILL.md`](.github/skills/igniteui-angular-linting/SKILL.md) | Running ESLint and Stylelint, fixing lint errors |
121124

122125
## Custom Agents
123126

0 commit comments

Comments
 (0)