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.
- package/fesm2022/igniteui-angular-carousel.mjs +2 -2
- package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-core.mjs +83 -24
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +9 -0
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-list.mjs +14 -1
- package/fesm2022/igniteui-angular-list.mjs.map +1 -1
- package/fesm2022/igniteui-angular-navigation-drawer.mjs +6 -1
- package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
- package/package.json +1 -1
- package/skills/igniteui-angular-components/SKILL.md +9 -29
- package/skills/igniteui-angular-components/references/charts.md +3 -33
- package/skills/igniteui-angular-components/references/data-display.md +8 -94
- package/skills/igniteui-angular-components/references/directives.md +13 -114
- package/skills/igniteui-angular-components/references/feedback.md +1 -4
- package/skills/igniteui-angular-components/references/form-controls.md +10 -75
- package/skills/igniteui-angular-components/references/layout-manager.md +15 -198
- package/skills/igniteui-angular-components/references/layout.md +1 -4
- package/skills/igniteui-angular-components/references/mcp-setup.md +28 -29
- package/skills/igniteui-angular-components/references/setup.md +6 -4
- package/skills/igniteui-angular-figma-to-app/SKILL.md +37 -25
- package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +25 -26
- package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +13 -9
- package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +2 -2
- package/skills/igniteui-angular-generate-from-image-design/SKILL.md +22 -7
- package/skills/igniteui-angular-generate-from-image-design/references/component-mapping.md +1 -1
- package/skills/igniteui-angular-grids/SKILL.md +21 -25
- package/skills/igniteui-angular-grids/references/data-operations.md +10 -11
- package/skills/igniteui-angular-grids/references/editing.md +3 -4
- package/skills/igniteui-angular-grids/references/features.md +16 -38
- package/skills/igniteui-angular-grids/references/grid-migration.md +6 -8
- package/skills/igniteui-angular-grids/references/paging-remote.md +2 -4
- package/skills/igniteui-angular-grids/references/state.md +4 -5
- package/skills/igniteui-angular-grids/references/structure.md +16 -9
- package/skills/igniteui-angular-grids/references/types.md +19 -33
- package/skills/igniteui-angular-theming/SKILL.md +12 -65
- package/skills/igniteui-angular-theming/references/mcp-setup.md +28 -31
- package/types/igniteui-angular-core.d.ts +32 -5
- 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
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
9
|
+
## Recommended: One-Command Setup
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
From the project root:
|
|
16
12
|
|
|
17
|
-
|
|
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
|
|
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
|
-
|
|
19
|
+
Projects created with `npx igniteui-cli new` already have the `igniteui-cli` MCP entry configured.
|
|
33
20
|
|
|
34
|
-
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
> **
|
|
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
|
-
> **
|
|
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
|
|
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
|
|
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
|
-
##
|
|
34
|
+
## Required Workflow
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`get_doc` results
|
|
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** | `
|
|
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.
|
|
63
|
-
|
|
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
|
|
80
|
-
`igniteui-theming`, and `playwright
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
|
|
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
|
-
|
|
378
|
-
|
|
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
|
-
|
|
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
|
-
- **
|
|
751
|
-
|
|
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.
|
|
23
|
-
|
|
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;
|
|
119
|
-
| `_Dock Manager` | `<igc-dockmanager>` | Web component (standalone) | `dock-manager` | `[layout]` JSON input;
|
|
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
|
|
175
|
-
>
|
|
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` |
|
|
185
|
-
| `_Pie Chart` / `_Donut Chart` | `<igx-pie-chart>` | `IgxPieChartComponent` |
|
|
186
|
-
| `_Financial Chart` / `_Stock Chart` | `<igx-financial-chart>` | `IgxFinancialChartComponent` |
|
|
187
|
-
| `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` |
|
|
188
|
-
| `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` |
|
|
189
|
-
| `_Doughnut Chart` | `<igx-doughnut-chart>` | `IgxDoughnutChartComponent` |
|
|
190
|
-
| `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` |
|
|
191
|
-
| `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` |
|
|
192
|
-
| `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` |
|
|
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 | `
|
|
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
|
|
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
|
|
155
|
-
>
|
|
156
|
-
>
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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: "
|
|
221
|
-
|
|
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
|
-
##
|
|
9
|
+
## Required Steps Before Coding
|
|
10
10
|
|
|
11
|
-
|
|
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. **
|
|
28
|
-
7. **
|
|
29
|
-
8. **
|
|
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
|
|
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 |
|
|
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
|
|