igniteui-cli 15.2.2-alpha.2 → 15.2.2-alpha.3
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/package.json +4 -4
- package/templates/blazor/igb/projects/ai-config/files/skills/AGENTS.md +4 -3
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/SKILL.md +2 -2
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/charts.md +3 -2
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-generate-from-image-design/references/component-mapping.md +10 -0
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-generate-from-image-design/references/gotchas.md +16 -0
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-grids/SKILL.md +3 -2
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/SKILL.md +2 -1
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/references/common-patterns.md +8 -0
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/CHARTS-GRIDS.md +1 -1
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/COMPONENT-CATALOGUE.md +6 -6
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/EVENT-HANDLING.md +1 -1
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/JSX-PATTERNS.md +4 -4
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/REFS-FORMS.md +6 -6
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-generate-from-image-design/reference/component-mapping.md +5 -5
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-choose-components/SKILL.md +3 -6
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +4 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "igniteui-cli",
|
|
3
|
-
"version": "15.2.2-alpha.
|
|
3
|
+
"version": "15.2.2-alpha.3",
|
|
4
4
|
"description": "CLI tool for creating Ignite UI projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"CLI",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"all": true
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@igniteui/angular-templates": "^21.2.1522-alpha.
|
|
70
|
-
"@igniteui/cli-core": "^15.2.2-alpha.
|
|
71
|
-
"@igniteui/mcp-server": "^15.2.2-alpha.
|
|
69
|
+
"@igniteui/angular-templates": "^21.2.1522-alpha.3",
|
|
70
|
+
"@igniteui/cli-core": "^15.2.2-alpha.3",
|
|
71
|
+
"@igniteui/mcp-server": "^15.2.2-alpha.3",
|
|
72
72
|
"@inquirer/prompts": "^7.9.0",
|
|
73
73
|
"chalk": "^5.3.0",
|
|
74
74
|
"glob": "^11.0.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
You are an expert in C#, Blazor, and scalable web application development. You write functional, maintainable, performant, and accessible code following .NET and Blazor best practices. You are currently immersed in the latest .NET and Blazor, adopting modern C# features, component-based architecture with clean separation of concerns, and modern Blazor patterns for reactive UI and
|
|
1
|
+
You are an expert in C#, Blazor, and scalable web application development. You write functional, maintainable, performant, and accessible code following .NET and Blazor best practices. You are currently immersed in the latest .NET and Blazor, adopting modern C# features, component-based architecture with clean separation of concerns, and modern Blazor patterns for reactive UI and dependency injection.
|
|
2
2
|
|
|
3
3
|
## Coding Standards
|
|
4
4
|
|
|
@@ -57,9 +57,10 @@ You are an expert in C#, Blazor, and scalable web application development. You w
|
|
|
57
57
|
|
|
58
58
|
## UI Components
|
|
59
59
|
|
|
60
|
-
- Use `IgniteUI.Blazor.Lite`, `IgniteUI.Blazor.GridLite` for general purpose components and light-weight grid, and `IgniteUI.Blazor` (trial version available publicly as `IgniteUI.Blazor.Trial`) for specialized feature-rich grids and charts.
|
|
60
|
+
- Use `IgniteUI.Blazor.Lite`, `IgniteUI.Blazor.GridLite` for general purpose components and light-weight grid, and `IgniteUI.Blazor` (trial version available publicly as `IgniteUI.Blazor.Trial`) for specialized feature-rich grids and charts. If the project already references full `IgniteUI.Blazor`, do not add `IgniteUI.Blazor.Lite` or `IgniteUI.Blazor.GridLite` unless the user explicitly chooses to switch package strategy.
|
|
61
61
|
- Components use the `Igb` prefix (e.g., `IgbGrid`, `IgbCombo`, `IgbDatePicker`).
|
|
62
62
|
- Every component requires module registration in `Program.cs`: `builder.Services.AddIgniteUIBlazor(typeof(IgbGridModule))`.
|
|
63
63
|
- Add `@using IgniteUI.Blazor.Controls` to `_Imports.razor`.
|
|
64
64
|
- Link a theme stylesheet in the host page (e.g., `_content/IgniteUI.Blazor/themes/light/bootstrap.css`).
|
|
65
|
-
-
|
|
65
|
+
- Add the Ignite UI runtime script before the Blazor framework script in the host page: `<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>`.
|
|
66
|
+
- If no Ignite UI package is present, add the package that matches the chosen package strategy.
|
package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/SKILL.md
CHANGED
|
@@ -12,7 +12,7 @@ user-invocable: true
|
|
|
12
12
|
- The correct NuGet package installed: `IgniteUI.Blazor.Lite` (NuGet.org, MIT) for general purpose UI components; `IgniteUI.Blazor.GridLite` (NuGet.org, MIT) for the lightweight grid; `IgniteUI.Blazor` (Infragistics private feed, licensed) for the full suite including charts, maps, gauges, and enterprise grids; or `IgniteUI.Blazor.Trial` (NuGet.org) for evaluation of the full suite
|
|
13
13
|
- `builder.Services.AddIgniteUIBlazor(...)` called in `Program.cs`
|
|
14
14
|
- `@using IgniteUI.Blazor.Controls` added to `_Imports.razor`
|
|
15
|
-
- A theme CSS file linked in the host page (see [`references/setup.md`](./references/setup.md))
|
|
15
|
+
- A theme CSS file and `_content/IgniteUI.Blazor/app.bundle.js` runtime script linked in the host page (see [`references/setup.md`](./references/setup.md))
|
|
16
16
|
- The **Ignite UI CLI MCP server** (`igniteui-cli`) is available as a tool provider
|
|
17
17
|
|
|
18
18
|
> **AGENT INSTRUCTION - MCP Server Setup (REQUIRED)**
|
|
@@ -78,7 +78,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
78
78
|
| `IgniteUI.Blazor` | Infragistics private NuGet feed (`https://packages.infragistics.com/nuget/licensed/`) | Licensed / enterprise users that need the full component suite (grids, charts, maps, gauges, Dock Manager) |
|
|
79
79
|
| `IgniteUI.Blazor.Trial` | NuGet.org | Evaluation users — same full suite as `IgniteUI.Blazor` but with a trial watermark |
|
|
80
80
|
|
|
81
|
-
`IgniteUI.Blazor.Lite` contains the open-source UI component set, while `IgniteUI.Blazor.GridLite` contains the free `IgbGridLite` data grid package. Both use the `IgniteUI.Blazor.Controls` namespace. Do **not** mix the licensed `IgniteUI.Blazor` package with `IgniteUI.Blazor.Lite` in the same project; they use the same namespaces and duplicate some components.
|
|
81
|
+
`IgniteUI.Blazor.Lite` contains the open-source UI component set, while `IgniteUI.Blazor.GridLite` contains the free `IgbGridLite` data grid package. Both use the `IgniteUI.Blazor.Controls` namespace. Do **not** mix the licensed `IgniteUI.Blazor` package with `IgniteUI.Blazor.Lite` in the same project; they use the same namespaces and duplicate some components. If full `IgniteUI.Blazor` is already referenced, do not add Lite/GridLite unless the user explicitly asks to switch package strategy.
|
|
82
82
|
|
|
83
83
|
## Key Blazor-Specific Notes
|
|
84
84
|
|
|
@@ -70,7 +70,7 @@ Key attributes: `DataSource`, `ChartType` (`CategoryChartType.Line` / `Area` / `
|
|
|
70
70
|
|
|
71
71
|
> **AGENT INSTRUCTION:** `CategoryChartType.Bar` does **not** exist. For a horizontal bar-style chart, use `CategoryChartType.Column` (vertical) or switch to `IgbDataChart` with `IgbBarSeries` for true horizontal bars. Never generate `ChartType="CategoryChartType.Bar"`.
|
|
72
72
|
|
|
73
|
-
> **AGENT INSTRUCTION:**
|
|
73
|
+
> **AGENT INSTRUCTION:** `IgbCategoryChart` auto-detects which string or date property in the data to use as X-axis labels. To control which data properties are charted, use `IncludedProperties` or `ExcludedProperties` (string arrays).
|
|
74
74
|
|
|
75
75
|
Brush list properties such as `Brushes`, `Outlines`, `MarkerBrushes`, and `MarkerOutlines` are **string** parameters. Separate multiple colors with spaces, as in `Brushes="DodgerBlue IndianRed"`.
|
|
76
76
|
|
|
@@ -328,4 +328,5 @@ Use Dashboard Tile when the requested component should infer or render compact d
|
|
|
328
328
|
5. **`IgbDataChart` series must match axes by name.** The `XAxisName` / `YAxisName` on each series must match the `Name` attribute of the axis component.
|
|
329
329
|
6. **`IncludedProperties` and `ExcludedProperties` are `string[]` arrays.** Bind with `@(new string[] { "Prop1", "Prop2" })`. Do not pass a plain string.
|
|
330
330
|
7. **`CategoryChartType.Bar` does not exist.** Use `Column` for vertical bars in `IgbCategoryChart`. For horizontal bars, use `IgbDataChart` with `IgbBarSeries`.
|
|
331
|
-
8. **
|
|
331
|
+
8. **Do not use `XAxisLabel` to specify a data field.** It controls label formatting only. Use `IncludedProperties`/`ExcludedProperties` on `IgbCategoryChart`, or `Label` on `IgbCategoryXAxis` for `IgbDataChart`.
|
|
332
|
+
9. **Scatter and bubble series use `XMemberPath`/`YMemberPath`, not `XAxisMemberPath`.** For `IgbScatterSeries` and `IgbBubbleSeries`, map data fields with `XMemberPath="FieldX"` and `YMemberPath="FieldY"`. `IgbBubbleSeries` additionally requires `RadiusMemberPath`.
|
|
@@ -270,6 +270,16 @@ builder.Services.AddIgniteUIBlazor(
|
|
|
270
270
|
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
|
|
271
271
|
```
|
|
272
272
|
|
|
273
|
+
> **If the generated view includes any full-featured grid** (`IgbGrid`, `IgbTreeGrid`, `IgbHierarchicalGrid`, `IgbPivotGrid`), also add the grid-specific stylesheet immediately after:
|
|
274
|
+
> ```html
|
|
275
|
+
> <link href="_content/IgniteUI.Blazor/themes/grid/light/bootstrap.css" rel="stylesheet" />
|
|
276
|
+
> ```
|
|
277
|
+
>
|
|
278
|
+
> **If the generated view includes `IgbGridLite`**, replace both links above with the single Grid Lite stylesheet (from the `IgniteUI.Blazor.GridLite` package):
|
|
279
|
+
> ```html
|
|
280
|
+
> <link href="_content/IgniteUI.Blazor.GridLite/css/themes/light/bootstrap.css" rel="stylesheet" />
|
|
281
|
+
> ```
|
|
282
|
+
|
|
273
283
|
### 5. JS interop script (`wwwroot/index.html` or `App.razor`)
|
|
274
284
|
|
|
275
285
|
```html
|
|
@@ -378,6 +378,22 @@ Switch the theme `<link>` from light to dark:
|
|
|
378
378
|
<link href="_content/IgniteUI.Blazor/themes/dark/bootstrap.css" rel="stylesheet" />
|
|
379
379
|
```
|
|
380
380
|
|
|
381
|
+
> **If the view includes any full-featured grid**, switch the grid-specific stylesheet variant too:
|
|
382
|
+
> ```html
|
|
383
|
+
> <!-- Light -->
|
|
384
|
+
> <link href="_content/IgniteUI.Blazor/themes/grid/light/bootstrap.css" rel="stylesheet" />
|
|
385
|
+
> <!-- Dark -->
|
|
386
|
+
> <link href="_content/IgniteUI.Blazor/themes/grid/dark/bootstrap.css" rel="stylesheet" />
|
|
387
|
+
> ```
|
|
388
|
+
>
|
|
389
|
+
> **If the view uses `IgbGridLite`**, switch its single stylesheet instead:
|
|
390
|
+
> ```html
|
|
391
|
+
> <!-- Light -->
|
|
392
|
+
> <link href="_content/IgniteUI.Blazor.GridLite/css/themes/light/bootstrap.css" rel="stylesheet" />
|
|
393
|
+
> <!-- Dark -->
|
|
394
|
+
> <link href="_content/IgniteUI.Blazor.GridLite/css/themes/dark/bootstrap.css" rel="stylesheet" />
|
|
395
|
+
> ```
|
|
396
|
+
|
|
381
397
|
### CSS custom properties for dark panels
|
|
382
398
|
When the design has multiple dark surface depths (e.g., sidebar darker than content area), define semantic tokens:
|
|
383
399
|
```css
|
|
@@ -62,7 +62,8 @@ Before using any Ignite UI for Blazor grid component you must have:
|
|
|
62
62
|
| NuGet package | `IgniteUI.Blazor` (licensed) for all full-featured grids; `IgniteUI.Blazor.GridLite` (MIT, separate NuGet) for Grid Lite only - grids are **not** included in `IgniteUI.Blazor.Lite` |
|
|
63
63
|
| Service registration | `builder.Services.AddIgniteUIBlazor(typeof(IgbGridModule), ...)` in **Program.cs** with required module types |
|
|
64
64
|
| Using directive | `@using IgniteUI.Blazor.Controls` in **_Imports.razor** |
|
|
65
|
-
| CSS theme | `<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />`
|
|
65
|
+
| CSS theme (IgbGrid / IgbTreeGrid / IgbHierarchicalGrid / IgbPivotGrid) | Add **both** in **index.html** / **_Host.cshtml**: base theme `<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />` **and** grid-specific `<link href="_content/IgniteUI.Blazor/themes/grid/light/bootstrap.css" rel="stylesheet" />` (always required when any full-featured grid is used) |
|
|
66
|
+
| CSS theme (IgbGridLite) | `<link href="_content/IgniteUI.Blazor.GridLite/css/themes/light/bootstrap.css" rel="stylesheet" />` — from the `IgniteUI.Blazor.GridLite` package; do **not** use the paths above |
|
|
66
67
|
| JS interop script | `<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>` in **index.html** or **_Host.cshtml** |
|
|
67
68
|
| Ignite UI CLI MCP | The **Ignite UI CLI MCP server** (`igniteui-cli`) available as a tool provider - see [`references/mcp-setup.md`](./references/mcp-setup.md) |
|
|
68
69
|
|
|
@@ -154,7 +155,7 @@ builder.Services.AddIgniteUIBlazor(
|
|
|
154
155
|
| State persistence | ❌ | ✅ | ✅ | ✅ | ✅ |
|
|
155
156
|
| Virtualization | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
156
157
|
| Cell merging | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
157
|
-
| Load on demand | ❌ | ❌ | ✅
|
|
158
|
+
| Load on demand | ❌ | ❌ | ✅ (JS interop via `LoadChildrenOnDemandScript`) | ✅ (`GridCreatedScript` on `IgbRowIsland` + JS interop) | ❌ |
|
|
158
159
|
| Remote data ops | `DataPipelineConfiguration` | Events + noop strategies | Events + noop strategies | Events + noop strategies | N/A |
|
|
159
160
|
|
|
160
161
|
---
|
package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/SKILL.md
CHANGED
|
@@ -13,7 +13,7 @@ This skill teaches AI agents how to theme Ignite UI for Blazor applications usin
|
|
|
13
13
|
## Prerequisites
|
|
14
14
|
|
|
15
15
|
- A Blazor project using Ignite UI for Blazor components
|
|
16
|
-
- A theme CSS file linked in the host page (see [`references/common-patterns.md`](./references/common-patterns.md))
|
|
16
|
+
- A theme CSS file and `_content/IgniteUI.Blazor/app.bundle.js` runtime script linked in the host page (see [`references/common-patterns.md`](./references/common-patterns.md))
|
|
17
17
|
- The **Ignite UI Theming MCP server** (`igniteui-theming`) available as a tool provider
|
|
18
18
|
|
|
19
19
|
> **AGENT INSTRUCTION - MCP Server Setup (REQUIRED)**
|
|
@@ -182,6 +182,7 @@ Place generated CSS in an app stylesheet loaded after the Ignite UI theme CSS, s
|
|
|
182
182
|
```html
|
|
183
183
|
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
|
|
184
184
|
<link href="css/app.css" rel="stylesheet" />
|
|
185
|
+
<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>
|
|
185
186
|
```
|
|
186
187
|
|
|
187
188
|
Palette and global layout CSS normally go in `:root`. Component theme CSS goes on the generated `igc-*` selector or under a scoped wrapper selector.
|
|
@@ -46,6 +46,14 @@ Add a single `<link>` tag in your host page:
|
|
|
46
46
|
<link href="_content/IgniteUI.Blazor/themes/light/material.css" rel="stylesheet" />
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
### Additional
|
|
50
|
+
|
|
51
|
+
Also add the Ignite UI runtime script before the Blazor framework script:
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>
|
|
55
|
+
```
|
|
56
|
+
|
|
49
57
|
### .NET 9+ Web App - use `Assets` collection
|
|
50
58
|
|
|
51
59
|
```razor
|
|
@@ -374,7 +374,7 @@ const currencyTemplate = (ctx: IgrCellContext<Order>) => (
|
|
|
374
374
|
);
|
|
375
375
|
|
|
376
376
|
const dateTemplate = (ctx: IgrCellContext<Order>) => (
|
|
377
|
-
<span
|
|
377
|
+
<span>{(ctx.value as Date).toLocaleDateString()}</span>
|
|
378
378
|
);
|
|
379
379
|
|
|
380
380
|
const statusTemplate = (ctx: IgrCellContext<Order>) => {
|
|
@@ -57,7 +57,7 @@ Use the tables below to map a UI need to the right React component. All componen
|
|
|
57
57
|
| UI Need | Component | Import | Docs |
|
|
58
58
|
|---|---|---|---|
|
|
59
59
|
| Full calendar view | `IgrCalendar` | `igniteui-react` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/scheduling/calendar) |
|
|
60
|
-
| Date picker (popup calendar) | `
|
|
60
|
+
| Date picker (popup calendar) | `IgrDatePicker` | `igniteui-react` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/scheduling/date-picker) |
|
|
61
61
|
| Date range selection | `IgrDateRangePicker` | `igniteui-react` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/scheduling/date-range-picker) |
|
|
62
62
|
|
|
63
63
|
### Notifications & Feedback
|
|
@@ -109,7 +109,7 @@ Use the tables below to map a UI need to the right React component. All componen
|
|
|
109
109
|
| Simple scrollable list | `IgrList` | `igniteui-react` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/list) |
|
|
110
110
|
| Hierarchical / tree data | `IgrTree` | `igniteui-react` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/tree) |
|
|
111
111
|
| Tabular data (MIT, lightweight) | `IgrGridLite` | `igniteui-react/grid-lite` (requires both `igniteui-react` and `igniteui-grid-lite` packages) | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grid-lite/overview) |
|
|
112
|
-
| Full-featured tabular data grid | `
|
|
112
|
+
| Full-featured tabular data grid | `IgrGrid` | `igniteui-react-grids` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/grid/overview) |
|
|
113
113
|
| Nested / master-detail grid | `IgrHierarchicalGrid` | `igniteui-react-grids` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/hierarchical-grid/overview) |
|
|
114
114
|
| Parent-child relational tree grid | `IgrTreeGrid` | `igniteui-react-grids` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/tree-grid/overview) |
|
|
115
115
|
| Cross-tabulation / BI pivot table | `IgrPivotGrid` | `igniteui-react-grids` | [Docs](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/pivot-grid/overview) |
|
|
@@ -156,8 +156,8 @@ Use the **Component Catalogue** tables above to find matching components. When i
|
|
|
156
156
|
| Simple static list | `IgrList` | Data Grid |
|
|
157
157
|
| Basic dropdown | `IgrSelect` | `IgrCombo` |
|
|
158
158
|
| Searchable or multi-select dropdown | `IgrCombo` | `IgrSelect` |
|
|
159
|
-
| Tabular data with basic display | `IgrGridLite` (grid-lite) | `
|
|
160
|
-
| Tabular data, advanced features needed | `
|
|
159
|
+
| Tabular data with basic display | `IgrGridLite` (grid-lite) | `IgrGrid` (commercial) |
|
|
160
|
+
| Tabular data, advanced features needed | `IgrGrid` | `IgrGridLite` (grid-lite) |
|
|
161
161
|
| Single dismissible message | `IgrToast` | `IgrSnackbar` |
|
|
162
162
|
| Message requiring user action | `IgrSnackbar` | `IgrToast` |
|
|
163
163
|
| Collapsible single section | `IgrExpansionPanel` | `IgrAccordion` |
|
|
@@ -249,7 +249,7 @@ function Dashboard() {
|
|
|
249
249
|
|
|
250
250
|
- `IgrInput` — search bar
|
|
251
251
|
- `IgrCombo` — filter dropdowns
|
|
252
|
-
- `IgrGridLite` (grid-lite) or `
|
|
252
|
+
- `IgrGridLite` (grid-lite) or `IgrGrid` — tabular data
|
|
253
253
|
- `IgrButton` / `IgrIconButton` — actions
|
|
254
254
|
- `IgrDialog` — confirm delete modal
|
|
255
255
|
- `IgrBadge` — status indicators
|
|
@@ -269,7 +269,7 @@ function Dashboard() {
|
|
|
269
269
|
- `IgrNavDrawer` — side navigation
|
|
270
270
|
- `IgrCard` — KPI summary cards
|
|
271
271
|
- `IgrTabs` or `IgrTileManager` — section layout
|
|
272
|
-
- `
|
|
272
|
+
- `IgrGrid` or `IgrPivotGrid` — detailed data tables
|
|
273
273
|
- `IgrCategoryChart` — charts (from `igniteui-react-charts`)
|
|
274
274
|
- `IgrLinearProgress` / `IgrCircularProgress` — loading indicators
|
|
275
275
|
|
|
@@ -50,7 +50,7 @@ function MyForm() {
|
|
|
50
50
|
| `IgrDialog` | `onClosed` | Dialog has closed |
|
|
51
51
|
| `IgrTabs` | `onChange` | Active tab changes |
|
|
52
52
|
| `IgrCalendar` | `onChange` | Selected date changes |
|
|
53
|
-
| `
|
|
53
|
+
| `IgrDatePicker` | `onChange` | Selected date changes |
|
|
54
54
|
|
|
55
55
|
## TypeScript Event Types
|
|
56
56
|
|
|
@@ -51,6 +51,7 @@ Ignite UI components use the web component **slot** mechanism under the hood. In
|
|
|
51
51
|
Some components like the Data Grid support **render props** for custom cell rendering:
|
|
52
52
|
|
|
53
53
|
```tsx
|
|
54
|
+
import { IgrBadge } from 'igniteui-react';
|
|
54
55
|
import { IgrGrid, IgrColumn } from 'igniteui-react-grids';
|
|
55
56
|
|
|
56
57
|
function UserGrid({ users }: { users: User[] }) {
|
|
@@ -152,10 +153,9 @@ function MainLayout() {
|
|
|
152
153
|
const location = useLocation();
|
|
153
154
|
|
|
154
155
|
const handleTabChange = (e: CustomEvent) => {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
156
|
+
const selectedLabel = (e.detail as any).label as string;
|
|
157
|
+
const tab = tabs.find(t => t.label === selectedLabel);
|
|
158
|
+
if (tab) navigate(tab.path);
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
return (
|
|
@@ -57,7 +57,7 @@ import { IgrInput, IgrSelect, IgrSelectItem, IgrButton } from 'igniteui-react';
|
|
|
57
57
|
function SimpleForm() {
|
|
58
58
|
const handleSubmit = (e: React.SubmitEvent<HTMLFormElement>) => {
|
|
59
59
|
// e.preventDefault(); // optionally prevent default submit for custom handling
|
|
60
|
-
const formData = new FormData(e.
|
|
60
|
+
const formData = new FormData(e.currentTarget);
|
|
61
61
|
console.log(formData.get('name')); // input value
|
|
62
62
|
console.log(formData.get('role')); // selected option value
|
|
63
63
|
};
|
|
@@ -84,7 +84,7 @@ Wire up Ignite UI form components with React state for controlled behavior:
|
|
|
84
84
|
|
|
85
85
|
```tsx
|
|
86
86
|
import { useState } from 'react';
|
|
87
|
-
import { IgrInput, IgrCheckbox, IgrSelect, IgrSelectItem } from 'igniteui-react';
|
|
87
|
+
import { IgrInput, IgrCheckbox, IgrSelect, IgrSelectItem, IgrCheckboxChangeEventArgsDetail } from 'igniteui-react';
|
|
88
88
|
|
|
89
89
|
function ProfileForm() {
|
|
90
90
|
const [name, setName] = useState('');
|
|
@@ -101,7 +101,7 @@ function ProfileForm() {
|
|
|
101
101
|
|
|
102
102
|
<IgrCheckbox
|
|
103
103
|
checked={newsletter}
|
|
104
|
-
onChange={(e: CustomEvent<
|
|
104
|
+
onChange={(e: CustomEvent<IgrCheckboxChangeEventArgsDetail>) =>
|
|
105
105
|
setNewsletter(e.detail.checked)
|
|
106
106
|
}
|
|
107
107
|
>
|
|
@@ -111,7 +111,7 @@ function ProfileForm() {
|
|
|
111
111
|
<IgrSelect
|
|
112
112
|
label="Role"
|
|
113
113
|
value={role}
|
|
114
|
-
onChange={(e: CustomEvent<
|
|
114
|
+
onChange={(e: CustomEvent<IgrSelectItem>) =>
|
|
115
115
|
setRole(e.detail.value)
|
|
116
116
|
}
|
|
117
117
|
>
|
|
@@ -130,7 +130,7 @@ Ignite UI components are form-associated web components. You can integrate them
|
|
|
130
130
|
|
|
131
131
|
```tsx
|
|
132
132
|
import { useForm, Controller } from 'react-hook-form';
|
|
133
|
-
import { IgrInput, IgrCheckbox, IgrButton } from 'igniteui-react';
|
|
133
|
+
import { IgrInput, IgrCheckbox, IgrButton, IgrCheckboxChangeEventArgsDetail } from 'igniteui-react';
|
|
134
134
|
|
|
135
135
|
interface FormData {
|
|
136
136
|
email: string;
|
|
@@ -172,7 +172,7 @@ function SignUpForm() {
|
|
|
172
172
|
render={({ field }) => (
|
|
173
173
|
<IgrCheckbox
|
|
174
174
|
checked={field.value || false}
|
|
175
|
-
onChange={(e: CustomEvent<
|
|
175
|
+
onChange={(e: CustomEvent<IgrCheckboxChangeEventArgsDetail>) =>
|
|
176
176
|
field.onChange(e.detail.checked)
|
|
177
177
|
}
|
|
178
178
|
>
|
|
@@ -39,10 +39,10 @@ Component decision matrix (by visual pattern, domain-neutral):
|
|
|
39
39
|
| Content blocks / summary cards | `IgrCard` | Use when card chrome helps match the panel shape and structure. Use `IgrCardHeader`, `IgrCardContent`, and `IgrCardActions`, or plain `<div>` containers for flat or highly custom tiles |
|
|
40
40
|
| Any text input field | `IgrInput` | Use when the input anatomy matches the screenshot, including search fields and inline editors. Apply CSS to match the screenshot's border/radius style |
|
|
41
41
|
| Dropdown or select | `IgrSelect` | Use when the screenshot clearly shows select/dropdown behavior |
|
|
42
|
-
| Form fields with labels and inputs | `IgrInput`, `IgrSelect`, `IgrCombo`, `
|
|
42
|
+
| Form fields with labels and inputs | `IgrInput`, `IgrSelect`, `IgrCombo`, `IgrDatePicker`, `IgrDateTimeInput` | Cover text, select, combo, and date/time inputs |
|
|
43
43
|
| Multi-step form / wizard | `IgrStepper` | Use when a sequence of steps is visually present |
|
|
44
44
|
| Filter chips / tag inputs | `IgrChip` | Use when chip anatomy matches status badges, filter tags, or removable labels in the screenshot |
|
|
45
|
-
| Calendar or date picker as a primary view element | `IgrCalendar`, `
|
|
45
|
+
| Calendar or date picker as a primary view element | `IgrCalendar`, `IgrDatePicker`, `IgrDateRangePicker` | Use when scheduling or date selection is the core UI |
|
|
46
46
|
| Top icon/action bar | `IgrNavbar` with `IgrButton` / `IgrIconButton` | Use when a navbar structure matches the screenshot; use plain icon buttons or custom containers when that is a closer fit |
|
|
47
47
|
|
|
48
48
|
## Chart Components
|
|
@@ -51,7 +51,7 @@ Component decision matrix (by visual pattern, domain-neutral):
|
|
|
51
51
|
|---|---|---|
|
|
52
52
|
| Area chart | `IgrCategoryChart` | `chartType`, `markerTypes`, `areaFillOpacity` |
|
|
53
53
|
| Line chart | `IgrCategoryChart` | `chartType`, `markerTypes` |
|
|
54
|
-
| Column
|
|
54
|
+
| Column chart | `IgrCategoryChart` | `chartType`, `markerTypes`, `includedProperties` |
|
|
55
55
|
| Sparkline (mini chart) | `IgrSparkline` or `IgrDataChart` | `displayType`, `valueMemberPath`, sized container |
|
|
56
56
|
| Pie/donut chart | `IgrPieChart` | `valueMemberPath`, `labelMemberPath` |
|
|
57
57
|
| Financial chart | `IgrFinancialChart` | OHLC/candlestick data |
|
|
@@ -68,7 +68,7 @@ Decision rule:
|
|
|
68
68
|
| UI Pattern | Ignite UI Component | Key Properties |
|
|
69
69
|
|---|---|---|
|
|
70
70
|
| Item list | `IgrList` | slot-based row content, selection, and dense list styling |
|
|
71
|
-
| User avatar | `IgrAvatar` | `initials`, `shape`, `
|
|
71
|
+
| User avatar | `IgrAvatar` | `initials`, `shape`, `src` |
|
|
72
72
|
| Status badge | `IgrBadge` | value/children plus token-based styling |
|
|
73
73
|
| Icons | `IgrIcon` | icon name, collection, styling |
|
|
74
74
|
| Progress bar | `IgrLinearProgress` | `value`, `max` |
|
|
@@ -91,7 +91,7 @@ Decision rule:
|
|
|
91
91
|
| Text input | `IgrInput` | `label`, `placeholder`, `type` |
|
|
92
92
|
| Dropdown select | `IgrSelect` | option children, label, value |
|
|
93
93
|
| Searchable multi-select | `IgrCombo` | `data`, `displayKey`, `valueKey` |
|
|
94
|
-
| Date picker | `
|
|
94
|
+
| Date picker | `IgrDatePicker` | value and label props |
|
|
95
95
|
| Date/time input | `IgrDateTimeInput` | value, format options |
|
|
96
96
|
| Toggle switch | `IgrSwitch` | checked state, change events |
|
|
97
97
|
| Checkbox | `IgrCheckbox` | checked state, `indeterminate` |
|
|
@@ -70,9 +70,6 @@ Ignite UI for Web Components is distributed across several packages depending on
|
|
|
70
70
|
|---|---|---|---|
|
|
71
71
|
| [`igniteui-webcomponents`](https://www.npmjs.com/package/igniteui-webcomponents) | MIT | `npm install igniteui-webcomponents` | General UI components (inputs, layouts, notifications, scheduling) |
|
|
72
72
|
| [`igniteui-webcomponents-grids`](https://www.npmjs.com/package/igniteui-webcomponents-grids) | Commercial | `npm install igniteui-webcomponents-grids` (trial) | Advanced data grids (Data Grid, Tree Grid, Hierarchical Grid, Pivot Grid) with many built-in functionalities |
|
|
73
|
-
| [`igniteui-grid-lite`](https://www.npmjs.com/package/igniteui-grid-lite) | MIT | `npm install igniteui-grid-lite` | Lightweight data grid for simpler tabular data |
|
|
74
|
-
| [`igniteui-dockmanager`](https://www.npmjs.com/package/igniteui-dockmanager) | Commercial | `npm install igniteui-dockmanager` (trial) | Windowing / docking layouts (IDE-style panels) |
|
|
75
|
-
| [`igniteui-webcomponents-grids`](https://www.npmjs.com/package/igniteui-webcomponents-grids) | Commercial | `npm install igniteui-webcomponents-grids` (trial) | Advanced data grids (Data Grid, Tree Grid, Hierarchical Grid, Pivot Grid) with many built-in functionalities |
|
|
76
73
|
| [`@infragistics/igniteui-webcomponents-grids`](https://packages.infragistics.com/feeds/js-licensed/@infragistics/igniteui-webcomponents-grids) | Commercial | `npm install @infragistics/igniteui-webcomponents-grids` (licensed) | Advanced data grids (Data Grid, Tree Grid, Hierarchical Grid, Pivot Grid) with many built-in functionalities |
|
|
77
74
|
| [`igniteui-grid-lite`](https://www.npmjs.com/package/igniteui-grid-lite) | MIT | `npm install igniteui-grid-lite` | Lightweight data grid for simpler tabular data |
|
|
78
75
|
| [`igniteui-dockmanager`](https://www.npmjs.com/package/igniteui-dockmanager) | Commercial | `npm install igniteui-dockmanager` (trial) | Windowing / docking layouts (IDE-style panels) |
|
|
@@ -113,7 +110,7 @@ All inputs are form-associated and integrate natively with `<form>`.
|
|
|
113
110
|
| On/off toggle | Switch | `<igc-switch>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/switch) |
|
|
114
111
|
| Single choice from a list | Radio / Radio Group | `<igc-radio>` / `<igc-radio-group>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio) |
|
|
115
112
|
| Star / score rating | Rating | `<igc-rating>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/rating) |
|
|
116
|
-
| Formatted / masked text input | Mask Input | `<igc-mask-input>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input) |
|
|
113
|
+
| Formatted / masked text input | Mask Input | `<igc-mask-input>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/mask-input) |
|
|
117
114
|
| Date and time input | Date Time Input | `<igc-date-time-input>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/date-time-input) |
|
|
118
115
|
| File upload | File Input | `<igc-file-input>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/file-input) |
|
|
119
116
|
| Simple dropdown / select | Select | `<igc-select>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/select) |
|
|
@@ -136,7 +133,7 @@ All inputs are form-associated and integrate natively with `<form>`.
|
|
|
136
133
|
| UI Need | Component | Tag | Docs |
|
|
137
134
|
|---|---|---|---|
|
|
138
135
|
| Full calendar view | Calendar | `<igc-calendar>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/calendar) |
|
|
139
|
-
| Date picker (popup calendar) | Date Picker | `<igc-
|
|
136
|
+
| Date picker (popup calendar) | Date Picker | `<igc-date-picker>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/date-picker) |
|
|
140
137
|
| Date range selection | Date Range Picker | `<igc-date-range-picker>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/date-range-picker) |
|
|
141
138
|
|
|
142
139
|
### Notifications & Feedback
|
|
@@ -191,7 +188,7 @@ All inputs are form-associated and integrate natively with `<form>`.
|
|
|
191
188
|
| Full-featured tabular data grid | Data Grid | `<igc-grid>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/grid/overview) |
|
|
192
189
|
| Nested / master-detail grid | Hierarchical Grid | `<igc-hierarchical-grid>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/hierarchical-grid/overview) |
|
|
193
190
|
| Parent-child relational tree grid | Tree Grid | `<igc-tree-grid>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree-grid/overview) |
|
|
194
|
-
| Cross-tabulation / BI pivot table | Pivot Grid | `<igc-pivot-grid>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/
|
|
191
|
+
| Cross-tabulation / BI pivot table | Pivot Grid | `<igc-pivot-grid>` | [Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/pivot-grid/overview) |
|
|
195
192
|
|
|
196
193
|
### Charting & Visualization
|
|
197
194
|
|
|
@@ -51,9 +51,11 @@ Component decision matrix (by visual pattern, domain-neutral):
|
|
|
51
51
|
|---|---|---|
|
|
52
52
|
| Area chart | `IgcCategoryChartComponent` | `chartType`, `markerTypes`, `brushes`, `outlines` |
|
|
53
53
|
| Line chart | `IgcCategoryChartComponent` | `chartType`, `markerTypes`, `brushes` |
|
|
54
|
-
| Column
|
|
54
|
+
| Column chart | `IgcCategoryChartComponent` | `chartType`, `markerTypes`|
|
|
55
|
+
| Bar chart | `IgcDataChartComponent` | `IgxBarSeriesComponent`, `valueMemberPath`, `argumentMemberPath` |
|
|
55
56
|
| Sparkline (mini chart) | `IgcSparklineComponent` | `displayType`, `valueMemberPath` |
|
|
56
|
-
| Pie
|
|
57
|
+
| Pie chart | `IgcPieChartComponent` | `valueMemberPath`, `labelMemberPath` |
|
|
58
|
+
| Donut chart | `IgcDoughnutChartComponent` | `innerExtent`; bind data via child `IgcRingSeriesBaseComponent` with `valueMemberPath`, `labelMemberPath` |
|
|
57
59
|
| Financial chart | `IgcFinancialChartComponent` | OHLC/candlestick data |
|
|
58
60
|
| Complex multi-series | `IgcDataChartComponent` | multiple series plus axes |
|
|
59
61
|
|