Skip to content

Commit 7c72ce8

Browse files
authored
Merge pull request #17024 from IgniteUI/zkolev/promote-btn-group-skill-changes
cherry-pick fix(skills): add igx-buttongroup and icon button to igniteui-angular-…
2 parents b265bd3 + 07e541d commit 7c72ce8

3 files changed

Lines changed: 121 additions & 3 deletions

File tree

skills/igniteui-angular-components/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: igniteui-angular-components
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, 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."
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."
44
user-invocable: true
55
---
66

@@ -33,7 +33,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
3333
| Tabs, Bottom Navigation, Stepper, Accordion, Expansion Panel, Splitter, Navigation Drawer | [`references/layout.md`](./references/layout.md) |
3434
| List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress Indicators, Chat | [`references/data-display.md`](./references/data-display.md) |
3535
| Dialog, Snackbar, Toast, Banner | [`references/feedback.md`](./references/feedback.md) |
36-
| 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) |
3737
| Layout Manager (`igxLayout`, `igxFlex` directives), Dock Manager (`igc-dockmanager` web component) | [`references/layout-manager.md`](./references/layout-manager.md) |
3838
| Charts (Area, Bar, Column, Stock/Financial, Pie), chart configuration, chart features (animation, tooltips, markers, highlighting, zooming), data binding | [`references/charts.md`](./references/charts.md) |
3939

skills/igniteui-angular-components/references/directives.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
## Contents
77

88
- [Button & Icon Button](#button--icon-button)
9+
- [Button Group](#button-group)
910
- [Ripple Effect](#ripple-effect)
1011
- [Tooltip](#tooltip)
1112
- [Drag and Drop](#drag-and-drop)
@@ -40,6 +41,121 @@ import { IgxIconComponent } from 'igniteui-angular/icon';
4041
Button variants for `igxButton`: `'flat'`, `'raised'`, `'outlined'`, `'fab'`.
4142
Button variants for `igxIconButton`: `'flat'`, `'outlined'`, `'contained'`.
4243

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+
43159
## Ripple Effect
44160

45161
> **Docs:** [Ripple Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/ripple)

skills/igniteui-angular-components/references/setup.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ import { IgxComboComponent } from 'igniteui-angular';
120120
| Circular Progress | `igniteui-angular/progressbar` |
121121
| Chat | `igniteui-angular/chat` |
122122
| Button / Icon Button | `igniteui-angular/directives` |
123+
| Button Group | `igniteui-angular/button-group` |
123124
| Ripple | `igniteui-angular/directives` |
124125
| IgxTooltipDirective, IgxTooltipTargetDirective | `igniteui-angular/directives` |
125126
| Drag & Drop | `igniteui-angular/directives` |
@@ -145,6 +146,7 @@ For complex components, use the bundled directive arrays instead of listing ever
145146

146147
| Token | Entry Point | Includes |
147148
|---|---|---|
149+
| `IGX_BUTTON_GROUP_DIRECTIVES` | `igniteui-angular/button-group` | Button group + button directive |
148150
| `IGX_INPUT_GROUP_DIRECTIVES` | `igniteui-angular/input-group` | Input group + label, hint, prefix, suffix |
149151
| `IGX_TABS_DIRECTIVES` | `igniteui-angular/tabs` | Tabs + tab item, header, content |
150152
| `IGX_STEPPER_DIRECTIVES` | `igniteui-angular/stepper` | Stepper + step |
@@ -158,7 +160,7 @@ For complex components, use the bundled directive arrays instead of listing ever
158160
- [`layout.md`](./layout.md) — Tabs, Stepper, Accordion, Splitter, Navigation Drawer
159161
- [`data-display.md`](./data-display.md) — List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress, Chat
160162
- [`feedback.md`](./feedback.md) — Dialog, Snackbar, Toast, Banner
161-
- [`directives.md`](./directives.md) — Button, Ripple, Tooltip, Drag and Drop
163+
- [`directives.md`](./directives.md) — Button, Icon Button, Button Group, Ripple, Tooltip, Drag and Drop
162164
- [`layout-manager.md`](./layout-manager.md) — Layout Manager directives, Dock Manager
163165
- [`../../igniteui-angular-grids/SKILL.md`](../../igniteui-angular-grids/SKILL.md) — Data Grids
164166
- [`../../igniteui-angular-theming/SKILL.md`](../../igniteui-angular-theming/SKILL.md) — Theming & Styling

0 commit comments

Comments
 (0)