igniteui-angular 21.1.0-rc.5 → 21.1.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-directives.mjs +28 -28
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +3 -0
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +8 -7
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-lite.mjs +2 -0
- package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +2 -2
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/package.json +4 -4
- package/skills/igniteui-angular-components/SKILL.md +10 -12
- package/skills/igniteui-angular-components/references/charts.md +20 -10
- package/skills/igniteui-angular-components/references/data-display.md +102 -22
- package/skills/igniteui-angular-components/references/directives.md +127 -4
- package/skills/igniteui-angular-components/references/feedback.md +11 -3
- package/skills/igniteui-angular-components/references/form-controls.md +27 -4
- package/skills/igniteui-angular-components/references/layout-manager.md +5 -0
- package/skills/igniteui-angular-components/references/layout.md +11 -2
- package/skills/igniteui-angular-components/references/setup.md +29 -9
- package/skills/igniteui-angular-grids/SKILL.md +7 -7
- package/skills/igniteui-angular-grids/references/data-operations.md +15 -5
- package/skills/igniteui-angular-grids/references/editing.md +12 -1
- package/skills/igniteui-angular-grids/references/features.md +26 -10
- package/skills/igniteui-angular-grids/references/paging-remote.md +13 -4
- package/skills/igniteui-angular-grids/references/state.md +17 -151
- package/skills/igniteui-angular-grids/references/structure.md +9 -0
- package/skills/igniteui-angular-grids/references/types.md +107 -26
- package/skills/igniteui-angular-theming/SKILL.md +6 -106
- package/skills/igniteui-angular-theming/references/common-patterns.md +45 -0
- package/skills/igniteui-angular-theming/references/mcp-setup.md +77 -0
- package/types/igniteui-angular-grids-grid.d.ts +1 -0
- package/types/igniteui-angular-grids-lite.d.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "igniteui-angular",
|
|
3
|
-
"version": "21.1.
|
|
3
|
+
"version": "21.1.1",
|
|
4
4
|
"description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
|
|
5
5
|
"author": "Infragistics",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -86,8 +86,8 @@
|
|
|
86
86
|
"@angular/forms": "21",
|
|
87
87
|
"hammerjs": "^2.0.8",
|
|
88
88
|
"@types/hammerjs": "^2.0.46",
|
|
89
|
-
"igniteui-webcomponents": "^
|
|
90
|
-
"igniteui-grid-lite": "~0.
|
|
89
|
+
"igniteui-webcomponents": "^7.0.0",
|
|
90
|
+
"igniteui-grid-lite": "~0.6.0"
|
|
91
91
|
},
|
|
92
92
|
"peerDependenciesMeta": {
|
|
93
93
|
"hammerjs": {
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
"igxDevDependencies": {
|
|
107
|
-
"@igniteui/angular-schematics": "~21.1.1490
|
|
107
|
+
"@igniteui/angular-schematics": "~21.1.1490"
|
|
108
108
|
},
|
|
109
109
|
"ng-update": {
|
|
110
110
|
"migrations": "./migrations/migration-collection.json",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: igniteui-angular-components
|
|
3
|
-
description: "
|
|
4
|
-
user-
|
|
3
|
+
description: "Covers all non-grid Ignite UI for Angular UI components: application scaffolding and setup, form controls (inputs, combos, selects, date/time pickers, calendar, checkbox, radio, switch, slider), layout containers (tabs, stepper, accordion, splitter, navigation drawer), data-display components (list, tree, card, chips, carousel, paginator, progress indicators, chat), feedback overlays (dialog, snackbar, toast, banner), directives (button, icon button, button group, ripple, tooltip, drag-and-drop), Dock Manager, Layout Manager, and Charts. Use when users ask about any Ignite UI Angular component that is NOT a data grid — such as forms, dropdowns, pickers, dialogs, navigation, lists, trees, cards, charts, or initial project setup. Do NOT use for data grids, tables, or tabular data — use igniteui-angular-grids instead. Do NOT use for theming or styling — use igniteui-angular-theming instead."
|
|
4
|
+
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Ignite UI for Angular — UI Components
|
|
@@ -18,13 +18,10 @@ You are **required** to complete ALL of the following steps before producing any
|
|
|
18
18
|
**STEP 1 — Identify every component or feature involved.**
|
|
19
19
|
Map the user's request to one or more rows in the Task → Reference File table below. A single request often spans multiple categories (e.g., a form inside a Dialog requires reading both `form-controls.md` AND `feedback.md`).
|
|
20
20
|
|
|
21
|
-
**STEP 2 — Read every identified reference file in full.**
|
|
22
|
-
Call `read_file` (or equivalent) on
|
|
21
|
+
**STEP 2 — Read every identified reference file in full (PARALLEL).**
|
|
22
|
+
Call `read_file` (or equivalent) on **all** reference files identified in Step 1 **in a single parallel batch** — do NOT read them one at a time sequentially. You must do this even if you believe you already know the answer. Do not skip, skim, or partially read a reference file.
|
|
23
23
|
|
|
24
|
-
**STEP 3 —
|
|
25
|
-
If the component is new to the project (or you're scaffolding a new feature), also read [`references/setup.md`](./references/setup.md) to verify the correct providers and entry-point import patterns. Missing `provideAnimations()` is the most common source of runtime failures.
|
|
26
|
-
|
|
27
|
-
**STEP 4 — Only then produce output.**
|
|
24
|
+
**STEP 3 — Only then produce output.**
|
|
28
25
|
Base your code and explanation exclusively on what you read. If the reference files do not cover something, say so explicitly rather than guessing.
|
|
29
26
|
|
|
30
27
|
### Task → Reference File
|
|
@@ -36,7 +33,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
36
33
|
| Tabs, Bottom Navigation, Stepper, Accordion, Expansion Panel, Splitter, Navigation Drawer | [`references/layout.md`](./references/layout.md) |
|
|
37
34
|
| List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress Indicators, Chat | [`references/data-display.md`](./references/data-display.md) |
|
|
38
35
|
| Dialog, Snackbar, Toast, Banner | [`references/feedback.md`](./references/feedback.md) |
|
|
39
|
-
| Button, Icon Button, Ripple, Tooltip, Drag and Drop | [`references/directives.md`](./references/directives.md) |
|
|
36
|
+
| Button, Icon Button, Button Group, Ripple, Tooltip, Drag and Drop | [`references/directives.md`](./references/directives.md) |
|
|
40
37
|
| Layout Manager (`igxLayout`, `igxFlex` directives), Dock Manager (`igc-dockmanager` web component) | [`references/layout-manager.md`](./references/layout-manager.md) |
|
|
41
38
|
| Charts (Area, Bar, Column, Stock/Financial, Pie), chart configuration, chart features (animation, tooltips, markers, highlighting, zooming), data binding | [`references/charts.md`](./references/charts.md) |
|
|
42
39
|
|
|
@@ -47,11 +44,11 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
47
44
|
## Prerequisites
|
|
48
45
|
|
|
49
46
|
- Angular 20+ project
|
|
50
|
-
-
|
|
51
|
-
-
|
|
47
|
+
- `@angular/cli` installed
|
|
48
|
+
- `igniteui-angular` or `@infragistics/igniteui-angular` added to the project via `ng add igniteui-angular` (or the `@infragistics` variant) or `npm install` — see [Package Variants](#package-variants) below.
|
|
49
|
+
- A theme applied to the application (see [`igniteui-angular-theming`](../igniteui-angular-theming/SKILL.md)).
|
|
52
50
|
- `provideAnimations()` in `app.config.ts` — **required before using any overlay or animated component**
|
|
53
51
|
|
|
54
|
-
---
|
|
55
52
|
|
|
56
53
|
## Package Variants
|
|
57
54
|
|
|
@@ -61,6 +58,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
61
58
|
| `@infragistics/igniteui-angular` | Requires private `@infragistics` registry | Licensed / enterprise users |
|
|
62
59
|
|
|
63
60
|
Both packages share **identical entry-point paths**. Check `package.json` and use that package name as the prefix for every import. Never import from the root barrel of either package.
|
|
61
|
+
Both packages can be added to the project using `@angular/cli` with the following commands: `ng add igniteui-angular` or `ng add @infragistics/igniteui-angular`.
|
|
64
62
|
|
|
65
63
|
---
|
|
66
64
|
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Angular Charts Reference
|
|
2
2
|
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [Overview](#overview)
|
|
6
|
+
- [General Chart Configuration](#general-chart-configuration)
|
|
7
|
+
- [Key Chart Features](#key-chart-features)
|
|
8
|
+
- [Chart Types Reference](#chart-types-reference)
|
|
9
|
+
- [Common API Members by Chart Type](#common-api-members-by-chart-type)
|
|
10
|
+
- [Import Paths](#import-paths)
|
|
11
|
+
- [Styling & Theming](#styling--theming)
|
|
12
|
+
- [Data Requirements](#data-requirements)
|
|
13
|
+
- [Documentation References](#documentation-references)
|
|
14
|
+
|
|
3
15
|
## Overview
|
|
4
16
|
|
|
5
17
|
Ignite UI for Angular Charts provides 65+ chart types for data visualization. Charts are packaged separately in `igniteui-angular-charts` (or `@infragistics/igniteui-angular-charts` for licensed users).
|
|
@@ -303,7 +315,6 @@ highlightingMode: HighlightingMode;
|
|
|
303
315
|
import {
|
|
304
316
|
IgxCategoryChartModule, // provides IgxCategoryChartComponent
|
|
305
317
|
IgxFinancialChartModule, // provides IgxFinancialChartComponent
|
|
306
|
-
IgxDataChartModule, // provides IgxDataChartComponent + all series/axes
|
|
307
318
|
IgxPieChartModule, // provides IgxPieChartComponent
|
|
308
319
|
IgxDataPieChartModule, // provides IgxDataPieChartComponent
|
|
309
320
|
IgxLegendModule, // provides IgxLegendComponent
|
|
@@ -311,21 +322,20 @@ import {
|
|
|
311
322
|
|
|
312
323
|
// Enums and types — these ARE plain TS exports and can be imported directly
|
|
313
324
|
import {
|
|
314
|
-
ChartType,
|
|
315
325
|
FinancialChartType,
|
|
316
326
|
MarkerType,
|
|
317
327
|
ToolTipType,
|
|
318
|
-
|
|
328
|
+
TrendLineTypeCollection,
|
|
319
329
|
HighlightingMode,
|
|
320
|
-
|
|
321
|
-
|
|
330
|
+
TransitionInSpeedType,
|
|
331
|
+
AxisLabelSettings,
|
|
322
332
|
CrosshairsDisplayMode,
|
|
323
333
|
LegendOrientation,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
334
|
+
OthersCategoryContext,
|
|
335
|
+
SeriesSelectionMode,
|
|
336
|
+
IndicatorDisplayType,
|
|
337
|
+
FinancialChartVolumeType,
|
|
338
|
+
AxisOrientation
|
|
329
339
|
} from 'igniteui-angular-charts';
|
|
330
340
|
```
|
|
331
341
|
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [List](#list)
|
|
9
|
+
- [Tree](#tree)
|
|
10
|
+
- [Card](#card)
|
|
11
|
+
- [Chips](#chips)
|
|
12
|
+
- [Avatar & Badge](#avatar--badge)
|
|
13
|
+
- [Icon](#icon)
|
|
14
|
+
- [Carousel](#carousel)
|
|
15
|
+
- [Paginator](#paginator)
|
|
16
|
+
- [Progress Indicators](#progress-indicators)
|
|
17
|
+
- [Chat (AI Chat Component)](#chat-ai-chat-component)
|
|
18
|
+
|
|
6
19
|
## List
|
|
7
20
|
|
|
8
21
|
> **Docs:** [List Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/list)
|
|
@@ -64,9 +77,8 @@ Selection modes: `'None'`, `'BiCascade'`, `'Cascade'`.
|
|
|
64
77
|
```typescript
|
|
65
78
|
import { IgxCardComponent, IgxCardHeaderComponent, IgxCardContentDirective, IgxCardActionsComponent, IgxCardMediaDirective, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardHeaderThumbnailDirective } from 'igniteui-angular/card';
|
|
66
79
|
import { IgxAvatarComponent } from 'igniteui-angular/avatar';
|
|
67
|
-
import { IgxButtonDirective } from 'igniteui-angular/
|
|
68
|
-
import { IgxRippleDirective } from 'igniteui-angular/
|
|
69
|
-
import { IgxIconButtonDirective } from 'igniteui-angular/button';
|
|
80
|
+
import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';
|
|
81
|
+
import { IgxRippleDirective } from 'igniteui-angular/directives';
|
|
70
82
|
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
71
83
|
```
|
|
72
84
|
|
|
@@ -215,8 +227,8 @@ import { IgxPaginatorComponent } from 'igniteui-angular/paginator';
|
|
|
215
227
|
> **Docs:** [Linear Progress](https://www.infragistics.com/products/ignite-ui-angular/angular/components/linear-progress) · [Circular Progress](https://www.infragistics.com/products/ignite-ui-angular/angular/components/circular-progress)
|
|
216
228
|
|
|
217
229
|
```typescript
|
|
218
|
-
import { IgxLinearProgressBarComponent } from 'igniteui-angular/
|
|
219
|
-
import { IgxCircularProgressBarComponent } from 'igniteui-angular/
|
|
230
|
+
import { IgxLinearProgressBarComponent } from 'igniteui-angular/progressbar';
|
|
231
|
+
import { IgxCircularProgressBarComponent } from 'igniteui-angular/progressbar';
|
|
220
232
|
```
|
|
221
233
|
|
|
222
234
|
```html
|
|
@@ -248,26 +260,94 @@ import { IgxChatComponent } from 'igniteui-angular/chat';
|
|
|
248
260
|
```
|
|
249
261
|
|
|
250
262
|
```html
|
|
251
|
-
<igx-chat
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
263
|
+
<igx-chat
|
|
264
|
+
[options]="options()"
|
|
265
|
+
[messages]="messages()"
|
|
266
|
+
[draftMessage]="draftMessage"
|
|
267
|
+
[templates]="templates()"
|
|
268
|
+
(messageCreated)="onMessageCreated($event)">
|
|
269
|
+
</igx-chat>
|
|
270
|
+
|
|
271
|
+
<ng-template #messageHeader let-message>
|
|
272
|
+
@if (message.sender !== 'user') {
|
|
273
|
+
<div>
|
|
274
|
+
<span style="font-weight: bold; color: #c00000;"
|
|
275
|
+
>Developer Support</span
|
|
276
|
+
>
|
|
277
|
+
</div>
|
|
278
|
+
}
|
|
279
|
+
</ng-template>
|
|
280
|
+
|
|
281
|
+
<ng-template #suggestionPrefix>
|
|
282
|
+
<span style="font-weight: bold">💡</span>
|
|
283
|
+
</ng-template>
|
|
284
|
+
|
|
285
|
+
<ng-template #messageContent let-message igxChatMessageContext>
|
|
286
|
+
<div [innerHTML]="message.text | fromMarkdown | async"></div>
|
|
287
|
+
</ng-template>
|
|
256
288
|
```
|
|
257
289
|
|
|
258
290
|
```typescript
|
|
259
|
-
import { IgxChatComponent,
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
291
|
+
import { IgxChatComponent, IgxChatMessageContextDirective, type IgxChatOptions } from 'igniteui-angular/chat';
|
|
292
|
+
import { MarkdownPipe } from 'igniteui-angular/chat-extras';
|
|
293
|
+
|
|
294
|
+
@Component({
|
|
295
|
+
selector: 'app-chat-features-sample',
|
|
296
|
+
styleUrls: ['./features-sample.component.scss'],
|
|
297
|
+
templateUrl: './features-sample.component.html',
|
|
298
|
+
imports: [IgxChatComponent, IgxChatMessageContextDirective, AsyncPipe, MarkdownPipe]
|
|
299
|
+
})
|
|
300
|
+
export class ChatFeaturesSampleComponent {
|
|
301
|
+
private _messageHeader = viewChild.required('messageHeader');
|
|
302
|
+
private _suggestionPrefix = viewChild.required('suggestionPrefix');
|
|
303
|
+
private _messageContent = viewChild.required('messageContent');
|
|
304
|
+
|
|
305
|
+
...
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
public options = signal<IgxChatOptions>({
|
|
309
|
+
disableAutoScroll: false,
|
|
310
|
+
disableInputAttachments: false,
|
|
311
|
+
inputPlaceholder: 'Type your message here...',
|
|
312
|
+
headerText: 'Developer Support',
|
|
313
|
+
suggestionsPosition: "below-input",
|
|
314
|
+
suggestions: [ 'Send me an e-mail when support is available.' ]
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
public templates = signal({});
|
|
318
|
+
|
|
319
|
+
constructor() {
|
|
320
|
+
effect(() => {
|
|
321
|
+
const messageHeader = this._messageHeader();
|
|
322
|
+
const suggestionPrefix = this._suggestionPrefix();
|
|
323
|
+
const messageContent = this._messageContent();
|
|
324
|
+
|
|
325
|
+
if (messageHeader && suggestionPrefix && messageContent) {
|
|
326
|
+
this.templates.set({
|
|
327
|
+
messageHeader: messageHeader,
|
|
328
|
+
suggestionPrefix: suggestionPrefix,
|
|
329
|
+
messageContent: messageContent
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
public onMessageCreated(e: any): void {
|
|
336
|
+
const newMessage = e;
|
|
337
|
+
this.messages.update(messages => [...messages, newMessage]);
|
|
338
|
+
this.options.update(options => ({ ...options, isTyping: true, suggestions: [] }));
|
|
339
|
+
|
|
340
|
+
const responseMessage = {
|
|
341
|
+
id: Date.now().toString(),
|
|
342
|
+
text: 'Our support team is currently unavailable. We\'ll get back to you as soon as possible.',
|
|
343
|
+
sender: 'support',
|
|
344
|
+
timestamp: Date.now().toString()
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
this.draftMessage = { text: '', attachments: [] };
|
|
348
|
+
this.messages.update(messages => [...messages, responseMessage]);
|
|
349
|
+
this.options.update(options => ({ ...options, isTyping: false }));
|
|
350
|
+
}
|
|
271
351
|
```
|
|
272
352
|
|
|
273
353
|
## See Also
|
|
@@ -3,12 +3,20 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Button & Icon Button](#button--icon-button)
|
|
9
|
+
- [Button Group](#button-group)
|
|
10
|
+
- [Ripple Effect](#ripple-effect)
|
|
11
|
+
- [Tooltip](#tooltip)
|
|
12
|
+
- [Drag and Drop](#drag-and-drop)
|
|
13
|
+
|
|
6
14
|
## Button & Icon Button
|
|
7
15
|
|
|
8
16
|
> **Docs:** [Button Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/button)
|
|
9
17
|
|
|
10
18
|
```typescript
|
|
11
|
-
import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/
|
|
19
|
+
import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';
|
|
12
20
|
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
13
21
|
```
|
|
14
22
|
|
|
@@ -33,12 +41,127 @@ import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
|
33
41
|
Button variants for `igxButton`: `'flat'`, `'raised'`, `'outlined'`, `'fab'`.
|
|
34
42
|
Button variants for `igxIconButton`: `'flat'`, `'outlined'`, `'contained'`.
|
|
35
43
|
|
|
44
|
+
## Button Group
|
|
45
|
+
|
|
46
|
+
> **Docs:** [Button Group Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/buttongroup)
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Option A — convenience collection (includes IgxButtonGroupComponent + IgxButtonDirective)
|
|
50
|
+
import { IGX_BUTTON_GROUP_DIRECTIVES } from 'igniteui-angular/button-group';
|
|
51
|
+
|
|
52
|
+
// Option B — individual imports
|
|
53
|
+
import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
|
|
54
|
+
import { IgxButtonDirective } from 'igniteui-angular/directives';
|
|
55
|
+
|
|
56
|
+
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<!-- Text buttons — single selection (default) -->
|
|
61
|
+
<igx-buttongroup>
|
|
62
|
+
<button igxButton>Left</button>
|
|
63
|
+
<button igxButton [selected]="true">Center</button>
|
|
64
|
+
<button igxButton>Right</button>
|
|
65
|
+
</igx-buttongroup>
|
|
66
|
+
|
|
67
|
+
<!-- Multi-selection -->
|
|
68
|
+
<igx-buttongroup selectionMode="multi">
|
|
69
|
+
<button igxButton><igx-icon>format_bold</igx-icon></button>
|
|
70
|
+
<button igxButton><igx-icon>format_italic</igx-icon></button>
|
|
71
|
+
<button igxButton><igx-icon>format_underlined</igx-icon></button>
|
|
72
|
+
</igx-buttongroup>
|
|
73
|
+
|
|
74
|
+
<!-- singleRequired — always keeps one button selected, cannot deselect -->
|
|
75
|
+
<igx-buttongroup selectionMode="singleRequired">
|
|
76
|
+
<button igxButton [selected]="true">Day</button>
|
|
77
|
+
<button igxButton>Week</button>
|
|
78
|
+
<button igxButton>Month</button>
|
|
79
|
+
</igx-buttongroup>
|
|
80
|
+
|
|
81
|
+
<!-- Vertical alignment -->
|
|
82
|
+
<igx-buttongroup alignment="vertical">
|
|
83
|
+
<button igxButton>Top</button>
|
|
84
|
+
<button igxButton>Middle</button>
|
|
85
|
+
<button igxButton>Bottom</button>
|
|
86
|
+
</igx-buttongroup>
|
|
87
|
+
|
|
88
|
+
<!-- Disabled group -->
|
|
89
|
+
<igx-buttongroup [disabled]="true">
|
|
90
|
+
<button igxButton>A</button>
|
|
91
|
+
<button igxButton>B</button>
|
|
92
|
+
</igx-buttongroup>
|
|
93
|
+
|
|
94
|
+
<!-- React to selection / deselection events -->
|
|
95
|
+
<igx-buttongroup (selected)="onSelected($event)" (deselected)="onDeselected($event)">
|
|
96
|
+
<button igxButton>One</button>
|
|
97
|
+
<button igxButton>Two</button>
|
|
98
|
+
<button igxButton>Three</button>
|
|
99
|
+
</igx-buttongroup>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { IButtonGroupEventArgs } from 'igniteui-angular/button-group';
|
|
104
|
+
|
|
105
|
+
onSelected(event: IButtonGroupEventArgs) {
|
|
106
|
+
console.log('Selected index:', event.index, 'button:', event.button);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
onDeselected(event: IButtonGroupEventArgs) {
|
|
110
|
+
console.log('Deselected index:', event.index);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Key inputs on `igx-buttongroup`:**
|
|
115
|
+
|
|
116
|
+
| Input | Type | Default | Description |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| `selectionMode` | `'single' \| 'singleRequired' \| 'multi'` | `'single'` | Selection behaviour. `singleRequired` prevents full deselection. |
|
|
119
|
+
| `alignment` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout direction of the buttons. |
|
|
120
|
+
| `disabled` | `boolean` | `false` | Disables every button in the group. |
|
|
121
|
+
|
|
122
|
+
**Key outputs on `igx-buttongroup`:**
|
|
123
|
+
|
|
124
|
+
| Output | Payload | Emits when |
|
|
125
|
+
|---|---|---|
|
|
126
|
+
| `(selected)` | `IButtonGroupEventArgs` | A button is selected. |
|
|
127
|
+
| `(deselected)` | `IButtonGroupEventArgs` | A button is deselected. |
|
|
128
|
+
|
|
129
|
+
`IButtonGroupEventArgs`: `{ owner: IgxButtonGroupComponent; button: IgxButtonDirective; index: number }`, where `IgxButtonDirective` is imported from `igniteui-angular/directives` (see **Button & Icon Button** section above).
|
|
130
|
+
|
|
131
|
+
**Key inputs on each `<button igxButton>` child:**
|
|
132
|
+
|
|
133
|
+
| Input | Type | Description |
|
|
134
|
+
|---|---|---|
|
|
135
|
+
| `[selected]` | `boolean` | Sets the initial selected state of the button. |
|
|
136
|
+
| `[disabled]` | `boolean` | Disables a specific button within the group. |
|
|
137
|
+
|
|
138
|
+
**Programmatic control:**
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { viewChild } from '@angular/core';
|
|
142
|
+
import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
|
|
143
|
+
|
|
144
|
+
buttonGroup = viewChild.required<IgxButtonGroupComponent>('myGroup');
|
|
145
|
+
|
|
146
|
+
selectSecond() { this.buttonGroup().selectButton(1); }
|
|
147
|
+
deselectSecond() { this.buttonGroup().deselectButton(1); }
|
|
148
|
+
getSelected() { return this.buttonGroup().selectedButtons; }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```html
|
|
152
|
+
<igx-buttongroup #myGroup selectionMode="multi">
|
|
153
|
+
<button igxButton>A</button>
|
|
154
|
+
<button igxButton>B</button>
|
|
155
|
+
<button igxButton>C</button>
|
|
156
|
+
</igx-buttongroup>
|
|
157
|
+
```
|
|
158
|
+
|
|
36
159
|
## Ripple Effect
|
|
37
160
|
|
|
38
161
|
> **Docs:** [Ripple Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/ripple)
|
|
39
162
|
|
|
40
163
|
```typescript
|
|
41
|
-
import { IgxRippleDirective } from 'igniteui-angular/
|
|
164
|
+
import { IgxRippleDirective } from 'igniteui-angular/directives';
|
|
42
165
|
```
|
|
43
166
|
|
|
44
167
|
```html
|
|
@@ -58,7 +181,7 @@ Inputs: `[igxRipple]` (ripple color), `[igxRippleCentered]` (always start from c
|
|
|
58
181
|
> **Docs:** [Tooltip Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tooltip)
|
|
59
182
|
|
|
60
183
|
```typescript
|
|
61
|
-
import { IgxTooltipDirective, IgxTooltipTargetDirective } from 'igniteui-angular/
|
|
184
|
+
import { IgxTooltipDirective, IgxTooltipTargetDirective } from 'igniteui-angular/directives';
|
|
62
185
|
```
|
|
63
186
|
|
|
64
187
|
```html
|
|
@@ -84,7 +207,7 @@ hideTooltip() { this.tooltip().close(); }
|
|
|
84
207
|
> **Docs:** [Drag and Drop](https://www.infragistics.com/products/ignite-ui-angular/angular/components/drag-drop)
|
|
85
208
|
|
|
86
209
|
```typescript
|
|
87
|
-
import { IgxDragDirective, IgxDropDirective, IDragMoveEventArgs, IDropDroppedEventArgs } from 'igniteui-angular/
|
|
210
|
+
import { IgxDragDirective, IgxDropDirective, IDragMoveEventArgs, IDropDroppedEventArgs } from 'igniteui-angular/directives';
|
|
88
211
|
```
|
|
89
212
|
|
|
90
213
|
### Basic drag and drop
|
|
@@ -5,13 +5,21 @@
|
|
|
5
5
|
|
|
6
6
|
> **AGENT INSTRUCTION:** All components in this file rely on Angular animations and the Ignite UI overlay system. Before using any of them, ensure `provideAnimations()` (or `provideAnimationsAsync()`) is present in `app.config.ts`. If it is missing, add it — these components will throw runtime errors or silently fail to animate without it.
|
|
7
7
|
|
|
8
|
+
## Contents
|
|
9
|
+
|
|
10
|
+
- [Dialog](#dialog)
|
|
11
|
+
- [Snackbar](#snackbar)
|
|
12
|
+
- [Toast](#toast)
|
|
13
|
+
- [Banner](#banner)
|
|
14
|
+
- [Key Rules](#key-rules)
|
|
15
|
+
|
|
8
16
|
## Dialog
|
|
9
17
|
|
|
10
18
|
> **Docs:** [Dialog Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/dialog)
|
|
11
19
|
|
|
12
20
|
```typescript
|
|
13
21
|
import { IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective } from 'igniteui-angular/dialog';
|
|
14
|
-
import { IgxButtonDirective } from 'igniteui-angular/
|
|
22
|
+
import { IgxButtonDirective } from 'igniteui-angular/directives';
|
|
15
23
|
```
|
|
16
24
|
|
|
17
25
|
```html
|
|
@@ -50,7 +58,7 @@ Events: `(opening)`, `(opened)`, `(closing)`, `(closed)`, `(leftButtonSelect)`,
|
|
|
50
58
|
|
|
51
59
|
```typescript
|
|
52
60
|
import { IgxSnackbarComponent, IgxSnackbarActionDirective } from 'igniteui-angular/snackbar';
|
|
53
|
-
import { IgxButtonDirective } from 'igniteui-angular/
|
|
61
|
+
import { IgxButtonDirective } from 'igniteui-angular/directives';
|
|
54
62
|
```
|
|
55
63
|
|
|
56
64
|
```html
|
|
@@ -98,7 +106,7 @@ Toast vs Snackbar: Toast is non-interactive (no action button), always auto-hide
|
|
|
98
106
|
```typescript
|
|
99
107
|
import { IgxBannerComponent, IgxBannerActionsDirective } from 'igniteui-angular/banner';
|
|
100
108
|
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
101
|
-
import { IgxButtonDirective } from 'igniteui-angular/
|
|
109
|
+
import { IgxButtonDirective } from 'igniteui-angular/directives';
|
|
102
110
|
```
|
|
103
111
|
|
|
104
112
|
```html
|
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Input Group](#input-group)
|
|
9
|
+
- [Combo (Multi-Select Dropdown)](#combo-multi-select-dropdown)
|
|
10
|
+
- [Simple Combo (Single-Select)](#simple-combo-single-select)
|
|
11
|
+
- [Select](#select)
|
|
12
|
+
- [Date Picker](#date-picker)
|
|
13
|
+
- [Date Range Picker](#date-range-picker)
|
|
14
|
+
- [Time Picker](#time-picker)
|
|
15
|
+
- [Calendar](#calendar)
|
|
16
|
+
- [Checkbox, Radio, Switch](#checkbox-radio-switch)
|
|
17
|
+
- [Slider](#slider)
|
|
18
|
+
- [Reactive Forms Integration](#reactive-forms-integration)
|
|
19
|
+
- [Key Rules](#key-rules)
|
|
20
|
+
|
|
6
21
|
## Input Group
|
|
7
22
|
|
|
8
23
|
> **Docs:** [Input Group](https://www.infragistics.com/products/ignite-ui-angular/angular/components/input-group)
|
|
@@ -109,9 +124,11 @@ Implements `ControlValueAccessor` and `Validator`. Works with both reactive and
|
|
|
109
124
|
> **Docs:** [Date Range Picker](https://www.infragistics.com/products/ignite-ui-angular/angular/components/date-range-picker)
|
|
110
125
|
|
|
111
126
|
```typescript
|
|
112
|
-
import { IgxDateRangePickerComponent } from 'igniteui-angular/date-
|
|
113
|
-
import { IgxDateTimeEditorDirective } from 'igniteui-angular/
|
|
127
|
+
import { IgxDateRangePickerComponent } from 'igniteui-angular/date-picker';
|
|
128
|
+
import { IgxDateTimeEditorDirective } from 'igniteui-angular/directives';
|
|
114
129
|
import { IGX_INPUT_GROUP_DIRECTIVES } from 'igniteui-angular/input-group';
|
|
130
|
+
|
|
131
|
+
// import { IgxDateTimeEditorDirective, IGX_INPUT_GROUP_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
|
|
115
132
|
```
|
|
116
133
|
|
|
117
134
|
```html
|
|
@@ -186,7 +203,13 @@ import { IgxSwitchComponent } from 'igniteui-angular/switch';
|
|
|
186
203
|
> **Docs:** [Slider Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/slider/slider)
|
|
187
204
|
|
|
188
205
|
```typescript
|
|
189
|
-
import { IgxSliderComponent,
|
|
206
|
+
import { IgxSliderComponent, IgxSliderType } from 'igniteui-angular/slider';
|
|
207
|
+
|
|
208
|
+
public sliderType = IgxSliderType;
|
|
209
|
+
public priceRange = {
|
|
210
|
+
lower: 200,
|
|
211
|
+
upper: 800
|
|
212
|
+
};
|
|
190
213
|
```
|
|
191
214
|
|
|
192
215
|
```html
|
|
@@ -195,7 +218,7 @@ import { IgxSliderComponent, SliderType } from 'igniteui-angular/slider';
|
|
|
195
218
|
|
|
196
219
|
<!-- Range slider -->
|
|
197
220
|
<igx-slider
|
|
198
|
-
[type]="
|
|
221
|
+
[type]="sliderType.RANGE"
|
|
199
222
|
[minValue]="0"
|
|
200
223
|
[maxValue]="100"
|
|
201
224
|
[lowerBound]="20"
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Layout Manager Directives](#layout-manager-directives)
|
|
9
|
+
- [Dock Manager](#dock-manager)
|
|
10
|
+
|
|
6
11
|
---
|
|
7
12
|
|
|
8
13
|
## Layout Manager Directives
|
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Tabs](#tabs)
|
|
9
|
+
- [Bottom Navigation](#bottom-navigation)
|
|
10
|
+
- [Stepper](#stepper)
|
|
11
|
+
- [Accordion](#accordion)
|
|
12
|
+
- [Splitter](#splitter)
|
|
13
|
+
- [Navigation Drawer](#navigation-drawer)
|
|
14
|
+
|
|
6
15
|
## Tabs
|
|
7
16
|
|
|
8
17
|
> **Docs:** [Tabs Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tabs)
|
|
@@ -171,9 +180,9 @@ import { IgxSplitterComponent, IgxSplitterPaneComponent, SplitterType } from 'ig
|
|
|
171
180
|
> **Docs:** [Navigation Drawer](https://www.infragistics.com/products/ignite-ui-angular/angular/components/navdrawer)
|
|
172
181
|
|
|
173
182
|
```typescript
|
|
174
|
-
import {
|
|
183
|
+
import { IgxNavigationDrawerComponent, IgxNavDrawerItemDirective, IgxNavDrawerTemplateDirective, IgxNavDrawerMiniTemplateDirective } from 'igniteui-angular/navigation-drawer';
|
|
175
184
|
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
176
|
-
import { IgxRippleDirective } from 'igniteui-angular/
|
|
185
|
+
import { IgxRippleDirective } from 'igniteui-angular/directives';
|
|
177
186
|
```
|
|
178
187
|
|
|
179
188
|
```html
|