igniteui-angular 22.1.0-beta.0 → 22.1.0-beta.1

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 (40) hide show
  1. package/fesm2022/igniteui-angular-carousel.mjs +2 -2
  2. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-core.mjs +83 -24
  4. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-grids-grid.mjs +9 -0
  6. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-list.mjs +14 -1
  8. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-navigation-drawer.mjs +6 -1
  10. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/skills/igniteui-angular-components/SKILL.md +9 -29
  13. package/skills/igniteui-angular-components/references/charts.md +3 -33
  14. package/skills/igniteui-angular-components/references/data-display.md +8 -94
  15. package/skills/igniteui-angular-components/references/directives.md +13 -114
  16. package/skills/igniteui-angular-components/references/feedback.md +1 -4
  17. package/skills/igniteui-angular-components/references/form-controls.md +10 -75
  18. package/skills/igniteui-angular-components/references/layout-manager.md +15 -198
  19. package/skills/igniteui-angular-components/references/layout.md +1 -4
  20. package/skills/igniteui-angular-components/references/mcp-setup.md +28 -29
  21. package/skills/igniteui-angular-components/references/setup.md +6 -4
  22. package/skills/igniteui-angular-figma-to-app/SKILL.md +37 -25
  23. package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +25 -26
  24. package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +13 -9
  25. package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +2 -2
  26. package/skills/igniteui-angular-generate-from-image-design/SKILL.md +22 -7
  27. package/skills/igniteui-angular-generate-from-image-design/references/component-mapping.md +1 -1
  28. package/skills/igniteui-angular-grids/SKILL.md +21 -25
  29. package/skills/igniteui-angular-grids/references/data-operations.md +10 -11
  30. package/skills/igniteui-angular-grids/references/editing.md +3 -4
  31. package/skills/igniteui-angular-grids/references/features.md +16 -38
  32. package/skills/igniteui-angular-grids/references/grid-migration.md +6 -8
  33. package/skills/igniteui-angular-grids/references/paging-remote.md +2 -4
  34. package/skills/igniteui-angular-grids/references/state.md +4 -5
  35. package/skills/igniteui-angular-grids/references/structure.md +16 -9
  36. package/skills/igniteui-angular-grids/references/types.md +19 -33
  37. package/skills/igniteui-angular-theming/SKILL.md +12 -65
  38. package/skills/igniteui-angular-theming/references/mcp-setup.md +28 -31
  39. package/types/igniteui-angular-core.d.ts +32 -5
  40. package/types/igniteui-angular-list.d.ts +5 -0
@@ -2,40 +2,31 @@
2
2
 
3
3
  > **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
4
4
 
5
- ## Contents
5
+ The Ignite UI CLI MCP server exposes `list_components`, `get_doc`, `search_docs`, and `search_api` so AI assistants can discover Ignite UI components and read version-accurate documentation. It must be configured in the editor/agent before these tools become available, and the editor or agent session must be restarted afterwards — MCP servers cannot be hot-loaded into a running session.
6
6
 
7
- - [VS Code](#vs-code)
8
- - [Cursor](#cursor)
9
- - [Claude Desktop](#claude-desktop)
10
- - [WebStorm / JetBrains IDEs](#webstorm--jetbrains-ides)
11
- - [Verifying the Setup](#verifying-the-setup)
7
+ > Depending on the client, MCP tool names may appear with a server prefix (e.g. `mcp__igniteui-cli__list_components` in Claude Code). This skill refers to tools by their bare names.
12
8
 
13
- The Ignite UI CLI MCP server enables AI assistants to discover Ignite UI components, access component documentation, and support related Ignite UI workflows. It must be configured in your editor before these tools become available.
9
+ ## Recommended: One-Command Setup
14
10
 
15
- ## VS Code
11
+ From the project root:
16
12
 
17
- Create or edit `.vscode/mcp.json` in your project:
18
-
19
- ```json
20
- {
21
- "servers": {
22
- "igniteui-cli": {
23
- "command": "npx",
24
- "args": ["-y", "igniteui-cli", "mcp"]
25
- }
26
- }
27
- }
13
+ ```bash
14
+ npx -y igniteui-cli ai-config
28
15
  ```
29
16
 
30
- This works whether `igniteui-cli` is installed locally in `node_modules` or needs to be pulled from the npm registry `npx -y` handles both cases.
17
+ This configures **both** the `igniteui-cli` and `igniteui-theming` MCP servers, copies the Ignite UI Agent Skills into the project, and preserves any existing server entries in the config files. Inline options such as `--agents claude copilot` and `--assistants vscode cursor` select which agents and editors to configure.
31
18
 
32
- ## Cursor
19
+ Projects created with `npx igniteui-cli new` already have the `igniteui-cli` MCP entry configured.
33
20
 
34
- Create or edit `.cursor/mcp.json`:
21
+ ## Manual Configuration (fallback)
22
+
23
+ Use these only when `ai-config` is unavailable or your editor is not covered by it.
24
+
25
+ ### VS Code — `.vscode/mcp.json`
35
26
 
36
27
  ```json
37
28
  {
38
- "mcpServers": {
29
+ "servers": {
39
30
  "igniteui-cli": {
40
31
  "command": "npx",
41
32
  "args": ["-y", "igniteui-cli", "mcp"]
@@ -44,11 +35,15 @@ Create or edit `.cursor/mcp.json`:
44
35
  }
45
36
  ```
46
37
 
47
- ## Claude Desktop
38
+ `npx -y` works whether `igniteui-cli` is installed locally in `node_modules` or needs to be pulled from the npm registry.
48
39
 
49
- Edit the Claude Desktop config file:
50
- - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
51
- - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
40
+ ### Claude Code
41
+
42
+ ```bash
43
+ claude mcp add igniteui-cli -- npx -y igniteui-cli mcp
44
+ ```
45
+
46
+ ### Cursor — `.cursor/mcp.json`
52
47
 
53
48
  ```json
54
49
  {
@@ -61,7 +56,11 @@ Edit the Claude Desktop config file:
61
56
  }
62
57
  ```
63
58
 
64
- ## WebStorm / JetBrains IDEs
59
+ ### Claude Desktop
60
+
61
+ Edit the Claude Desktop config file (**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`, **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`) and add the same `mcpServers` entry as shown for Cursor above.
62
+
63
+ ### WebStorm / JetBrains IDEs
65
64
 
66
65
  1. Go to **Settings → Tools → AI Assistant → MCP Servers**
67
66
  2. Click **+ Add MCP Server**
@@ -70,7 +69,7 @@ Edit the Claude Desktop config file:
70
69
 
71
70
  ## Verifying the Setup
72
71
 
73
- After configuring the MCP server, ask your AI assistant:
72
+ After restarting the editor/session, ask the AI assistant:
74
73
 
75
74
  > "List all available Ignite UI components"
76
75
 
@@ -23,7 +23,7 @@ Both packages share identical entry-point paths. Everywhere below, replace `igni
23
23
 
24
24
  ## Required Providers (`app.config.ts`)
25
25
 
26
- > **AGENT INSTRUCTION:** Before adding any Ignite UI component, verify that `app.config.ts` contains the providers listed below. Missing `provideAnimations()` is the most common cause of runtime errors — all overlay and animated components (Dialog, Combo, Select, Date Picker, Snackbar, Toast, Banner, Navigation Drawer, Dropdown) will silently fail or throw without it.
26
+ > **Important:** Before adding any Ignite UI component, verify that `app.config.ts` contains the providers listed below. Missing `provideAnimations()` is the most common cause of runtime errors — all overlay and animated components (Dialog, Combo, Select, Date Picker, Snackbar, Toast, Banner, Navigation Drawer, Dropdown) will silently fail or throw without it.
27
27
 
28
28
  ```typescript
29
29
  import { ApplicationConfig } from '@angular/core';
@@ -69,7 +69,7 @@ export class ExampleComponent {}
69
69
 
70
70
  ## Multi-Entry-Point Imports
71
71
 
72
- > **AGENT INSTRUCTION:** Always import from specific entry points, never from the root barrel. Check `package.json` to determine whether the project uses `igniteui-angular` or `@infragistics/igniteui-angular` — that prefix applies to every import path.
72
+ > **Important:** Always import from specific entry points, never from the root barrel. Check `package.json` to determine whether the project uses `igniteui-angular` or `@infragistics/igniteui-angular` — that prefix applies to every import path.
73
73
 
74
74
  ```typescript
75
75
  // CORRECT — tree-shakeable, specific entry point
@@ -85,7 +85,8 @@ import { IgxComboComponent } from 'igniteui-angular';
85
85
  | Component / Directive | Entry Point |
86
86
  |---|---|
87
87
  | Input Group | `igniteui-angular/input-group` |
88
- | Combo / Simple Combo | `igniteui-angular/combo` |
88
+ | Combo | `igniteui-angular/combo` |
89
+ | Simple Combo | `igniteui-angular/simple-combo` |
89
90
  | Select | `igniteui-angular/select` |
90
91
  | Date Picker / Date Range Picker | `igniteui-angular/date-picker` |
91
92
  | Time Picker | `igniteui-angular/time-picker` |
@@ -96,7 +97,8 @@ import { IgxComboComponent } from 'igniteui-angular';
96
97
  | Slider | `igniteui-angular/slider` |
97
98
  | Tabs | `igniteui-angular/tabs` |
98
99
  | Stepper | `igniteui-angular/stepper` |
99
- | Accordion / Expansion Panel | `igniteui-angular/expansion-panel` |
100
+ | Accordion | `igniteui-angular/accordion` |
101
+ | Expansion Panel | `igniteui-angular/expansion-panel` |
100
102
  | Splitter | `igniteui-angular/splitter` |
101
103
  | Navigation Drawer | `igniteui-angular/navigation-drawer` |
102
104
  | Bottom Navigation | `igniteui-angular/bottom-nav` |
@@ -31,11 +31,13 @@ This skill orchestrates four MCP servers: **Figma** (design data), **Ignite UI C
31
31
 
32
32
  ---
33
33
 
34
- ## MANDATORY AGENT PROTOCOL
34
+ ## Required Workflow
35
35
 
36
- You **must** complete all phases in order. Do **not** skip phases or generate component
37
- code from memory. Every component selector, input name, and import path must come from
38
- `get_doc` results never guessed.
36
+ Complete all phases in order do not skip phases or generate component code from
37
+ memory. Every component selector, input name, and import path must come from
38
+ `get_doc` results or, where no doc exists in the catalog, from the
39
+ `igniteui-angular-components` / `igniteui-angular-grids` skill reference files —
40
+ never guessed.
39
41
 
40
42
  Read [references/figma-component-map.md](references/figma-component-map.md) before Phase 2.
41
43
  Read [references/design-token-bridge.md](references/design-token-bridge.md) before Phase 3.
@@ -46,6 +48,11 @@ Read [references/validation-patterns.md](references/validation-patterns.md) befo
46
48
 
47
49
  ## Phase 0 — Prerequisites
48
50
 
51
+ > **Tool naming:** this skill writes MCP tool names as `<server>_<tool>` (e.g.
52
+ > `figma_get_metadata`, `theming_create_theme`). The exact name depends on the client —
53
+ > Claude Code exposes them as `mcp__<server>__<tool>` (e.g. `mcp__figma__get_metadata`).
54
+ > Match by the tool's base name on whatever server is connected.
55
+
49
56
  ### 0a: Verify All Four MCP Servers
50
57
 
51
58
  Run these checks **silently** in parallel. Each verification call is a no-op if the
@@ -54,13 +61,15 @@ server is not connected; do not surface raw errors to the user at this point.
54
61
  | Server | Verification call | Success signal |
55
62
  | --------------------- | ---------------------------------------------- | ----------------------------------- |
56
63
  | **Figma** | `figma_get_metadata` with no `nodeId` | Returns page list or selection info |
57
- | **Ignite UI CLI** | `igniteui_cli_list_components` with `framework: "angular"` | Returns component list |
64
+ | **Ignite UI CLI** | `list_components` with `framework: "angular"` | Returns component list |
58
65
  | **Ignite UI Theming** | `theming_detect_platform` | Returns platform info |
59
66
  | **Playwright** | `playwright_browser_navigate` to `about:blank` | Navigates without error |
60
67
 
61
68
  If **any server fails**, stop and guide the user through setup **for that server only**
62
- before continuing. Full setup instructions for all servers are in
63
- [references/mcp-setup.md](references/mcp-setup.md).
69
+ before continuing. For `igniteui-cli` and `igniteui-theming`, the fastest path is
70
+ `npx -y igniteui-cli ai-config`, which configures both. Full setup instructions for all
71
+ servers are in [references/mcp-setup.md](references/mcp-setup.md). Newly configured MCP
72
+ servers require an editor/session reload before their tools appear.
64
73
 
65
74
  ### 0b: Detect or Scaffold Angular Project
66
75
 
@@ -76,14 +85,14 @@ Check whether the current working directory contains a valid Angular + Ignite UI
76
85
 
77
86
  - Note the package layout: `igniteui-angular` (open-source) or `@infragistics/igniteui-angular` (licensed)
78
87
  - Note the Angular version from `package.json`
79
- - **Check `.vscode/mcp.json` for all four required MCP server entries** — `figma`, `igniteui-cli`,
80
- `igniteui-theming`, and `playwright`. If any are missing, add them from
81
- [references/mcp-setup.md](references/mcp-setup.md) before continuing. Projects scaffolded with
88
+ - **Check the MCP configuration for all four required server entries** — `figma`, `igniteui-cli`,
89
+ `igniteui-theming`, and `playwright` (in `.vscode/mcp.json` or the client's equivalent).
90
+ If `igniteui-cli` or `igniteui-theming` is missing, run `npx -y igniteui-cli ai-config`
91
+ from the project root — it configures both servers and copies the Agent Skills, preserving
92
+ existing entries. Add missing `figma` and `playwright` entries from
93
+ [references/mcp-setup.md](references/mcp-setup.md). Projects scaffolded with
82
94
  `npx igniteui-cli new` have `igniteui-cli` pre-wired but typically lack the other three.
83
- - Check whether `.vscode/mcp.json` exists in the project root. If it does not, run
84
- `npx -y igniteui-cli ai-config` from the project root to auto-generate the Ignite UI
85
- CLI MCP server configuration and copy the Agent Skills — this ensures `list_components`
86
- and `get_doc` are wired up before Phase 2.
95
+ A reload is required before newly configured servers' tools appear.
87
96
  - Inform the user: "Found existing Ignite UI Angular project. Proceeding with the Figma workflow."
88
97
 
89
98
  **If no valid project is found:**
@@ -142,8 +151,9 @@ If the user confirms scaffolding:
142
151
  **Goal:** understand the full design structure and capture all data needed for
143
152
  implementation and validation before writing any code.
144
153
 
145
- > **Rate-limit awareness:** Figma MCP calls count against plan quotas.
146
- > Starter plan: **6 calls/month**. Organization plan: 200/day. Enterprise: 600/day.
154
+ > **Rate-limit awareness:** Figma MCP calls count against plan quotas
155
+ > (indicative, subject to change verify against the user's current Figma plan:
156
+ > Starter **6 calls/month**, Organization 200/day, Enterprise 600/day).
147
157
  >
148
158
  > Estimated call budget for a 5-artboard design:
149
159
  > `figma_get_metadata` ×2 + `figma_get_screenshot` ×5 + `figma_get_design_context` ×5 + `figma_get_variable_defs` ×1 + `figma_get_code_connect_map` ×5 = **~18 calls**.
@@ -371,15 +381,17 @@ Each row gives you:
371
381
 
372
382
  ### 2b: Fetch Component Docs
373
383
 
374
- For every component family you will use, call `get_doc`:
384
+ Call `list_components({ framework: "angular" })` **once** to discover which component
385
+ families have full docs — **the catalog covers only a subset of components**. Then:
375
386
 
376
- ```
377
- list_components({ framework: "angular" }) // once, to discover doc names
378
- get_doc({ framework: "angular", name: "<doc-name>" }) // per component family
379
- ```
387
+ - For families **with** a doc: call `get_doc({ framework: "angular", name: "<doc-name>" })`,
388
+ all in a single parallel batch never sequentially.
389
+ - For families **without** a doc: read the matching reference files from the
390
+ [`igniteui-angular-components`](../igniteui-angular-components/SKILL.md) and
391
+ [`igniteui-angular-grids`](../igniteui-angular-grids/SKILL.md) skills, and use
392
+ `search_api` for member-level API lookups.
380
393
 
381
- Call all `get_doc` requests **in a single parallel batch** never sequentially.
382
- Do **not** write any component code until you have read its doc.
394
+ Do **not** write any component code until you have read its doc or reference file.
383
395
 
384
396
  ### 2c: Search for Feature Docs
385
397
 
@@ -747,8 +759,8 @@ Check that:
747
759
  `figma_get_design_context` per artboard. Batch screenshot calls.
748
760
  - **Fail fast on 3 retries.** If the same correction fails three times, stop, report
749
761
  the issue to the user, and ask for guidance.
750
- - **Never commit `package-lock.json`** or other lock files unintentionally. Ask before
751
- changing any dependency manifest.
762
+ - **Do not modify dependency manifests or lock files without asking.** Identify the exact
763
+ packages and versions required, then get approval before installing.
752
764
 
753
765
  ---
754
766
 
@@ -19,8 +19,12 @@
19
19
  1. Find the kit component name (as it appears in the Figma layers panel or the
20
20
  Indigo.Design kit library) in the **Kit Component Name** column.
21
21
  2. Read the **Angular Selector** and **IgxXxx Class** for the template.
22
- 3. Use the **`get_doc` Key** to call `get_doc({ framework: "angular", name: "<key>" })`
23
- before writing any code.
22
+ 3. Try the **`get_doc` Key** with `get_doc({ framework: "angular", name: "<key>" })`.
23
+ **The doc catalog covers only a subset of components** (verify with `list_components`
24
+ once). When no doc exists for a key, use the
25
+ [`igniteui-angular-components`](../../igniteui-angular-components/SKILL.md) /
26
+ [`igniteui-angular-grids`](../../igniteui-angular-grids/SKILL.md) skill reference files
27
+ for usage patterns and `search_api` for member-level API lookups — do not guess.
24
28
  4. Consult **Key Inputs / Variants** for the properties most commonly configured from
25
29
  Figma variants.
26
30
 
@@ -71,10 +75,10 @@
71
75
  | `_Simple Combo` | `<igx-simple-combo>` | `IgxSimpleComboComponent` | `simple-combo` | `box` | `[data]`, `[displayKey]`, `[valueKey]` |
72
76
  | `_Select` / `_Dropdown` | `<igx-select>` | `IgxSelectComponent` | `select` | `line` | `<igx-select-item>` children, `[type]` |
73
77
  | `_Autocomplete` | `igxAutocomplete` directive | `IgxAutocompleteDirective` | `autocomplete` | n/a | Used alongside `igx-input-group` + `igx-drop-down` |
74
- | `_Checkbox` | `<igx-checkbox>` | `IgxCheckboxComponent` | `checkbox` | `[(ngModel)]`, `[checked]`, `[indeterminate]`, `[disabled]`, `labelPosition` |
75
- | `_Radio` / `_Radio Button` | `<igx-radio>` | `IgxRadioComponent` | `radio-button` | `[value]`, `[(ngModel)]`; wrap multiple in `<igx-radio-group>` |
76
- | `_Switch` / `_Toggle` | `<igx-switch>` | `IgxSwitchComponent` | `switch` | `[(ngModel)]`, `[checked]`, `labelPosition` |
77
- | `_Slider` / `_Range Slider` | `<igx-slider>` | `IgxSliderComponent` | `slider` | `[type]` (`SLIDER\|RANGE`), `[minValue]`, `[maxValue]`, `[step]`, `[(ngModel)]` |
78
+ | `_Checkbox` | `<igx-checkbox>` | `IgxCheckboxComponent` | `checkbox` | n/a | `[(ngModel)]`, `[checked]`, `[indeterminate]`, `[disabled]`, `labelPosition` |
79
+ | `_Radio` / `_Radio Button` | `<igx-radio>` | `IgxRadioComponent` | `radio-button` | n/a | `[value]`, `[(ngModel)]`; wrap multiple in `<igx-radio-group>` |
80
+ | `_Switch` / `_Toggle` | `<igx-switch>` | `IgxSwitchComponent` | `switch` | n/a | `[(ngModel)]`, `[checked]`, `labelPosition` |
81
+ | `_Slider` / `_Range Slider` | `<igx-slider>` | `IgxSliderComponent` | `slider` | n/a | `[type]` (`SLIDER\|RANGE`), `[minValue]`, `[maxValue]`, `[step]`, `[(ngModel)]` |
78
82
  | `_Rating` | `<igc-rating>` | `IgcRatingComponent` (**web component** — `igniteui-webcomponents` package) | _(see setup note below)_ | n/a | `value` attribute; `igcChange` event; no `[(ngModel)]` — bind via `(igcChange)` |
79
83
 
80
84
  > **Rating setup:** `npm install igniteui-webcomponents`. In the component:
@@ -115,8 +119,8 @@
115
119
  | `_Accordion` | `<igx-accordion>` | `IgxAccordionComponent` | `accordion` | `[singleBranchExpand]`; `<igx-expansion-panel>` children |
116
120
  | `_Expansion Panel` | `<igx-expansion-panel>` | `IgxExpansionPanelComponent` | `expansion-panel` | `<igx-expansion-panel-header>` + `<igx-expansion-panel-body>` |
117
121
  | `_Splitter` | `<igx-splitter>` | `IgxSplitterComponent` | `splitter` | `[type]` (`horizontal\|vertical`); `<igx-splitter-pane>` children |
118
- | `_Tile Manager` | `<igc-tile-manager>` | Web component (standalone) | `tile-manager` | `<igc-tile>` children; this is a web component — see layout-manager.md |
119
- | `_Dock Manager` | `<igc-dockmanager>` | Web component (standalone) | `dock-manager` | `[layout]` JSON input; this is a web component — see layout-manager.md |
122
+ | `_Tile Manager` | `<igc-tile-manager>` | Web component (standalone) | `tile-manager` | `<igc-tile>` children; web component — see [`layout-manager.md`](../../igniteui-angular-components/references/layout-manager.md) |
123
+ | `_Dock Manager` | `<igc-dockmanager>` | Web component (standalone) | `dock-manager` | `[layout]` JSON input; web component — see [`layout-manager.md`](../../igniteui-angular-components/references/layout-manager.md) |
120
124
 
121
125
  ---
122
126
 
@@ -171,8 +175,9 @@
171
175
  > DV components have **no Sass design tokens**. All visual configuration is done via
172
176
  > component inputs. Do **not** call `theming_get_component_design_tokens` for these.
173
177
  >
174
- > **`get_doc` key:** use `charts-chart-overview` for all chart types (not the
175
- > type-specific keys like `category-chart` or `pie-chart` those return "Doc not found").
178
+ > **`get_doc`:** the current doc catalog has **no chart docs** use the
179
+ > [`charts.md`](../../igniteui-angular-components/references/charts.md) reference in the
180
+ > components skill for usage patterns and `search_api` for member lookups.
176
181
  >
177
182
  > **Series colors:** chart components use their own default brush palette. Always
178
183
  > explicitly set `[brushes]` and `[outlines]` with space-separated hex colors extracted
@@ -181,21 +186,15 @@
181
186
 
182
187
  | Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
183
188
  | ---------------------------------------------------------------- | -------------------------------------- | ---------------------------- | ----------------------- | ------------------------------------------------------------------------------------- |
184
- | `_Category Chart` / `_Line Chart` / `_Area Chart` / `_Bar Chart` | `<igx-category-chart>` | `IgxCategoryChartComponent` | `charts-chart-overview` | `[dataSource]`, `[chartType]`, `[brushes]`, `[outlines]`, `[legend]`, `[markerTypes]` |
185
- | `_Pie Chart` / `_Donut Chart` | `<igx-pie-chart>` | `IgxPieChartComponent` | `charts-chart-overview` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
186
- | `_Financial Chart` / `_Stock Chart` | `<igx-financial-chart>` | `IgxFinancialChartComponent` | `charts-chart-overview` | `[dataSource]`, `[chartType]` (`Candle\|Bar\|Line`), `[volumeType]` |
187
- | `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` | `charts-chart-overview` | `[dataSource]`, `[valueMemberPath]`, `[displayType]` (`Line\|Area\|Column\|WinLoss`) |
188
- | `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` | `charts-chart-overview` | `[dataSource]`; series added as child elements |
189
- | `_Doughnut Chart` | `<igx-doughnut-chart>` | `IgxDoughnutChartComponent` | `charts-chart-overview` | `[dataSource]`; `<igx-ring-series>` children |
190
- | `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` | `charts-chart-overview` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
191
- | `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` | `charts-chart-overview` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
192
- | `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` | `charts-chart-overview` | Use `<igx-scatter-series>` or `<igx-bubble-series>` |
193
- | `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` | `sparkline` | `[dataSource]`, `[valueMemberPath]`, `[displayType]` (`Line\|Area\|Column\|WinLoss`) |
194
- | `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` | `data-chart` | `[dataSource]`; series added as child elements |
195
- | `_Doughnut Chart` | `<igx-doughnut-chart>` | `IgxDoughnutChartComponent` | `doughnut-chart` | `[dataSource]`; `<igx-ring-series>` children |
196
- | `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` | `treemap` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
197
- | `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` | `funnel-chart` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
198
- | `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` | `data-chart` | Use `<igx-scatter-series>` or `<igx-bubble-series>` |
189
+ | `_Category Chart` / `_Line Chart` / `_Area Chart` / `_Bar Chart` | `<igx-category-chart>` | `IgxCategoryChartComponent` | | `[dataSource]`, `[chartType]`, `[brushes]`, `[outlines]`, `[legend]`, `[markerTypes]` |
190
+ | `_Pie Chart` / `_Donut Chart` | `<igx-pie-chart>` | `IgxPieChartComponent` | | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
191
+ | `_Financial Chart` / `_Stock Chart` | `<igx-financial-chart>` | `IgxFinancialChartComponent` | | `[dataSource]`, `[chartType]` (`Candle\|Bar\|Line`), `[volumeType]` |
192
+ | `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` | | `[dataSource]`, `[valueMemberPath]`, `[displayType]` (`Line\|Area\|Column\|WinLoss`) |
193
+ | `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` | | `[dataSource]`; series added as child elements |
194
+ | `_Doughnut Chart` | `<igx-doughnut-chart>` | `IgxDoughnutChartComponent` | | `[dataSource]`; `<igx-ring-series>` children |
195
+ | `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` | | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
196
+ | `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` | | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
197
+ | `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` | | Use `<igx-scatter-series>` or `<igx-bubble-series>` |
199
198
 
200
199
  ---
201
200
 
@@ -236,7 +235,7 @@
236
235
  | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
237
236
  | Open-source package | `import { Igx... } from 'igniteui-angular/<entry-point>'` |
238
237
  | Licensed package | `import { Igx... } from '@infragistics/igniteui-angular/<entry-point>'` |
239
- | Web components (Tile Manager, Dock Manager) | `import 'igniteui-dockmanager'` / see `layout-manager.md` in the components skill |
238
+ | Web components (Tile Manager, Dock Manager) | `import 'igniteui-dockmanager'` / see [`layout-manager.md`](../../igniteui-angular-components/references/layout-manager.md) in the components skill |
240
239
  | Rating web component | `import { IgcRatingComponent, defineComponents } from 'igniteui-webcomponents'` + `CUSTOM_ELEMENTS_SCHEMA` |
241
240
  | DV charts/gauges/maps | Require separate `igniteui-angular-charts`, `igniteui-angular-gauges`, or `igniteui-angular-maps` packages |
242
241
 
@@ -12,7 +12,7 @@
12
12
  | Server | Purpose | Verify with |
13
13
  | ------------------------------------------ | --------------------------------------------------- | ---------------------------------------------- |
14
14
  | **Figma** | Read artboard structure, screenshots, design tokens | `figma_get_metadata` (no nodeId) |
15
- | **Ignite UI CLI** (`igniteui-cli`) | Component docs, API reference | `igniteui_cli_list_components` |
15
+ | **Ignite UI CLI** (`igniteui-cli`) | Component docs, API reference | `list_components` |
16
16
  | **Ignite UI Theming** (`igniteui-theming`) | Palette + component-level theming code | `theming_detect_platform` |
17
17
  | **Playwright** | Browser automation, screenshots, DOM measurement | `playwright_browser_navigate` to `about:blank` |
18
18
 
@@ -71,7 +71,7 @@ Create or edit `.cursor/mcp.json`:
71
71
  claude mcp add figma -- npx -y @figma/mcp@latest --figma-access-token YOUR_TOKEN_HERE
72
72
  ```
73
73
 
74
- Or edit `~/.claude/settings.json`:
74
+ Or add the entry to the project's `.mcp.json` (created at the repo root):
75
75
 
76
76
  ```json
77
77
  {
@@ -151,9 +151,10 @@ Call `figma_get_metadata` with **no `nodeId`**. It should return either:
151
151
  > npx -y igniteui-cli ai-config
152
152
  > ```
153
153
  >
154
- > This sets up both the MCP configuration and the Agent Skills in one step.
155
- > Only follow the manual steps below when `npx igniteui-cli ai-config` is not available
156
- > or you need to configure a non-VS Code editor.
154
+ > This configures **both** the `igniteui-cli` and `igniteui-theming` MCP servers and copies
155
+ > the Agent Skills in one step, preserving existing server entries. Only follow the manual
156
+ > steps below (and in section 3) when `npx igniteui-cli ai-config` is not available or you
157
+ > need to configure an editor it does not cover.
157
158
 
158
159
  ### VS Code
159
160
 
@@ -191,7 +192,7 @@ Create or edit `.cursor/mcp.json`:
191
192
  claude mcp add igniteui-cli -- npx -y igniteui-cli mcp
192
193
  ```
193
194
 
194
- Or edit `~/.claude/settings.json`:
195
+ Or add the entry to the project's `.mcp.json` (created at the repo root):
195
196
 
196
197
  ```json
197
198
  {
@@ -219,6 +220,9 @@ The `list_components` tool should return a full component list for the Angular f
219
220
 
220
221
  ## 3. Ignite UI Theming MCP (`igniteui-theming`)
221
222
 
223
+ > **`npx -y igniteui-cli ai-config` configures this server too** (see section 2). Use the
224
+ > manual steps below only when `ai-config` is unavailable or doesn't cover your editor.
225
+
222
226
  ### VS Code
223
227
 
224
228
  Create or edit `.vscode/mcp.json`:
@@ -255,7 +259,7 @@ Create or edit `.cursor/mcp.json`:
255
259
  claude mcp add igniteui-theming -- npx -y igniteui-theming igniteui-theming-mcp
256
260
  ```
257
261
 
258
- Or edit `~/.claude/settings.json`:
262
+ Or add the entry to the project's `.mcp.json` (created at the repo root):
259
263
 
260
264
  ```json
261
265
  {
@@ -320,7 +324,7 @@ Create or edit `.cursor/mcp.json`:
320
324
  claude mcp add playwright -- npx -y @playwright/mcp@latest
321
325
  ```
322
326
 
323
- Or edit `~/.claude/settings.json`:
327
+ Or add the entry to the project's `.mcp.json` (created at the repo root):
324
328
 
325
329
  ```json
326
330
  {
@@ -422,7 +426,7 @@ The `playwright_browser_navigate` tool should open the page without error.
422
426
  }
423
427
  ```
424
428
 
425
- ### Claude Code (`~/.claude/settings.json`)
429
+ ### Claude Code (`.mcp.json` in the project root)
426
430
 
427
431
  ```json
428
432
  {
@@ -217,8 +217,8 @@ FIGMA: header height = 40px
217
217
  RENDERED: height = 56px
218
218
  SEVERITY: Minor
219
219
  FIX: Call theming_get_component_design_tokens("grid"), find "header-background" or size
220
- token, then call theming_set_size({ component: "grid", size: "compact" }) or
221
- create_component_theme with a custom header height token.
220
+ token, then call theming_set_size({ component: "grid", size: "small" }) or
221
+ theming_create_component_theme with a custom header height token.
222
222
  ```
223
223
 
224
224
  ---
@@ -6,9 +6,9 @@ user-invocable: true
6
6
 
7
7
  # Implementing Ignite UI Angular Views from Design Images
8
8
 
9
- ## MANDATORY AGENT PROTOCOL
9
+ ## Required Steps Before Coding
10
10
 
11
- Before writing any implementation code, you must complete these steps in order:
11
+ Complete these steps in order before writing any implementation code:
12
12
 
13
13
  1. Analyze the image and identify all visible regions and UI patterns.
14
14
  2. Read [references/component-mapping.md](references/component-mapping.md) and [references/gotchas.md](references/gotchas.md).
@@ -17,6 +17,13 @@ Before writing any implementation code, you must complete these steps in order:
17
17
  5. Call `get_doc` for every chosen component family before using it.
18
18
  6. Only then start coding.
19
19
 
20
+ > **If the MCP tools are unavailable**, do not block the task: fall back to the reference
21
+ > files of the [`igniteui-angular-components`](../igniteui-angular-components/SKILL.md) and
22
+ > [`igniteui-angular-grids`](../igniteui-angular-grids/SKILL.md) skills for component APIs,
23
+ > and the [`igniteui-angular-theming`](../igniteui-angular-theming/SKILL.md) skill's manual
24
+ > Sass workflow for theming. Suggest running `npx -y igniteui-cli ai-config` (configures the
25
+ > `igniteui-cli` and `igniteui-theming` MCP servers) and reloading the editor for future sessions.
26
+
20
27
  ## Workflow
21
28
 
22
29
  1. **Analyze the design image** - Read the image, identify every UI section, component, layout structure.
@@ -24,9 +31,10 @@ Before writing any implementation code, you must complete these steps in order:
24
31
  3. **Discover components** - Call `list_components` with targeted filters to find matching components for each UI pattern
25
32
  4. **Look up component docs** - Call `get_doc` for every chosen component family before coding
26
33
  5. **Generate theme** - (a) To generate a theme, first extract colors and create a color palette using `create_palette` or `create_custom_palette` depending on the scenario. Then extract elevations and call `create_elevations`. Then extract typography and call `create_typography`. Then call `create_theme` with the palette, elevations, and typography. (b) After a theme exists, prefer using design tokens or scoped semantic CSS variables over raw literals. (c) For every Ignite UI component, call `get_component_design_tokens`, map extracted image tokens to token roles, then call `create_component_theme` with the tokens differing from the global theme for the specific component.
27
- 6. **Implement** - Build the screenshot-first layout, data, and view components
28
- 7. **Refine** - Use the `set_size`, `set_spacing`, `set_roundness` tools to refine the view's visual fidelity against the image, then iterate on implementation and theming until the view matches the design closely
29
- 8. **Validate** - Build, test, run, compare against the image, and fix differences
34
+ 6. **Install DV packages** - if the design uses charts, maps, gauges, or sparklines, resolve and install the compatible DV packages (with approval)
35
+ 7. **Implement** - Build the screenshot-first layout, data, and view components
36
+ 8. **Refine** - Use the `set_size`, `set_spacing`, `set_roundness` tools to refine the view's visual fidelity against the image, then iterate on implementation and theming until the view matches the design closely
37
+ 9. **Validate** - Build, test, run, compare against the image, and fix differences
30
38
 
31
39
  ## Step 1: Analyze the Design Image
32
40
 
@@ -86,9 +94,9 @@ For component-to-Ignite-UI mapping, see [references/component-mapping.md](refere
86
94
 
87
95
  ## Step 4: Look Up Component API
88
96
 
89
- For every chosen component category, call `get_doc` with the doc name from `list_components` results (e.g., `name: "card"`, `framework: "angular"`). Use the doc `name` field from the MCP results, not the result title shown in the list. This is mandatory before coding and gives exact usage patterns, inputs, and template structure.
97
+ For every chosen component category that appears in the `list_components` results, call `get_doc` with its doc `name` field (not the result title). **The doc catalog covers only a subset of components** — for categories without a doc, read the matching reference files from the [`igniteui-angular-components`](../igniteui-angular-components/SKILL.md) / [`igniteui-angular-grids`](../igniteui-angular-grids/SKILL.md) skills and use `search_api` for member-level API lookups. Read one or the other before coding it gives exact usage patterns, inputs, and template structure.
90
98
 
91
- Call `search_docs` for feature-based questions (e.g., "how to configure [component] for [specific behavior or styling need]").
99
+ Call `search_docs` for feature-based questions (e.g., "how to configure [component] for [specific behavior or styling need]") — it searches only the docs in the catalog.
92
100
 
93
101
  ## Step 5: Generate Theme with MCP
94
102
 
@@ -224,3 +232,10 @@ Fix TypeScript or template errors immediately during the build/test steps. Use t
224
232
  - re-examining the original design for overlooked sections or missing imports
225
233
 
226
234
  After the build succeeds with zero errors, refine layout proportions, color values, missing sections, and typography until the view matches closely.
235
+
236
+ ## Related Skills
237
+
238
+ - [`igniteui-angular-components`](../igniteui-angular-components/SKILL.md) — non-grid component reference files
239
+ - [`igniteui-angular-grids`](../igniteui-angular-grids/SKILL.md) — data grid reference files
240
+ - [`igniteui-angular-theming`](../igniteui-angular-theming/SKILL.md) — theming system source of truth
241
+ - [`igniteui-angular-figma-to-app`](../igniteui-angular-figma-to-app/SKILL.md) — use instead when a live Figma file is available (richer design data than a static image)
@@ -21,7 +21,7 @@
21
21
  | Tabbed content | `IgxBottomNavComponent` or `IgxTabsComponent` | Panel-based or router-based |
22
22
  | Accordion sections | `IgxAccordionComponent` | `IgxExpansionPanelComponent` children |
23
23
  | Split layouts | `IgxSplitterComponent` | Horizontal/vertical panes |
24
- | Tile dashboard | `IgxTileManagerComponent` | Drag/resize tiles (Premium) |
24
+ | Tile dashboard | `<igc-tile-manager>` web component | Drag/resize `<igc-tile>` children (Premium); not an `Igx` Angular component — requires `CUSTOM_ELEMENTS_SCHEMA` |
25
25
 
26
26
  Decision rule:
27
27