igniteui-angular 22.2.0-rc.1 → 22.2.0
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/README.md +1 -1
- package/button-group/README.md +42 -9
- package/calendar/README.md +30 -20
- package/card/README.md +1 -1
- package/fesm2022/igniteui-angular-accordion.mjs +7 -7
- package/fesm2022/igniteui-angular-action-strip.mjs +11 -22
- package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
- package/fesm2022/igniteui-angular-avatar.mjs +7 -7
- package/fesm2022/igniteui-angular-badge.mjs +7 -7
- package/fesm2022/igniteui-angular-banner.mjs +10 -10
- package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
- package/fesm2022/igniteui-angular-button-group.mjs +32 -35
- package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs +132 -180
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-card.mjs +47 -58
- package/fesm2022/igniteui-angular-card.mjs.map +1 -1
- package/fesm2022/igniteui-angular-carousel.mjs +22 -22
- package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
- package/fesm2022/igniteui-angular-chat.mjs +12 -12
- package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
- package/fesm2022/igniteui-angular-chips.mjs +10 -10
- package/fesm2022/igniteui-angular-combo.mjs +66 -60
- package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-core.mjs +107 -79
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +38 -38
- package/fesm2022/igniteui-angular-dialog.mjs +13 -13
- package/fesm2022/igniteui-angular-directives.mjs +194 -194
- package/fesm2022/igniteui-angular-drop-down.mjs +29 -29
- package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
- package/fesm2022/igniteui-angular-grids-core.mjs +737 -661
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +69 -58
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +37 -37
- package/fesm2022/igniteui-angular-grids-lite.mjs +25 -17
- package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +92 -81
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +55 -55
- package/fesm2022/igniteui-angular-icon.mjs +10 -10
- package/fesm2022/igniteui-angular-input-group.mjs +25 -25
- package/fesm2022/igniteui-angular-list.mjs +40 -40
- package/fesm2022/igniteui-angular-navbar.mjs +13 -13
- package/fesm2022/igniteui-angular-navigation-drawer.mjs +43 -38
- package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
- package/fesm2022/igniteui-angular-paginator.mjs +19 -19
- package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
- package/fesm2022/igniteui-angular-query-builder.mjs +22 -22
- package/fesm2022/igniteui-angular-radio.mjs +25 -21
- package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
- package/fesm2022/igniteui-angular-select.mjs +25 -25
- package/fesm2022/igniteui-angular-simple-combo.mjs +9 -9
- package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-slider.mjs +28 -28
- package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
- package/fesm2022/igniteui-angular-splitter.mjs +13 -13
- package/fesm2022/igniteui-angular-stepper.mjs +34 -34
- package/fesm2022/igniteui-angular-switch.mjs +7 -7
- package/fesm2022/igniteui-angular-tabs.mjs +34 -34
- package/fesm2022/igniteui-angular-time-picker.mjs +19 -19
- package/fesm2022/igniteui-angular-toast.mjs +7 -7
- package/fesm2022/igniteui-angular-tree.mjs +28 -28
- package/fesm2022/igniteui-angular-virtual-scroll.mjs +497 -145
- package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
- package/migrations/common/UpdateChanges.d.ts +25 -5
- package/migrations/common/UpdateChanges.js +218 -34
- package/migrations/common/UpdateChanges.spec.js +763 -0
- package/migrations/migration-collection.json +1 -1
- package/migrations/update-22_2_0/index.js +145 -0
- package/migrations/update-22_2_0/index.spec.js +133 -0
- package/navigation-drawer/README.md +1 -1
- package/package.json +4 -4
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/skills/igniteui-angular-components/SKILL.md +9 -5
- package/skills/igniteui-angular-components/references/form-controls.md +1 -1
- package/skills/igniteui-angular-components/references/mcp-setup.md +14 -2
- package/skills/igniteui-angular-figma-to-app/SKILL.md +112 -525
- package/skills/igniteui-angular-figma-to-app/references/asset-extraction.md +49 -75
- package/skills/igniteui-angular-figma-to-app/references/design-provenance.md +201 -0
- package/skills/igniteui-angular-figma-to-app/references/design-token-bridge.md +175 -52
- package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +153 -99
- package/skills/igniteui-angular-figma-to-app/references/figma-exploration.md +226 -0
- package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +71 -105
- package/skills/igniteui-angular-figma-to-app/references/project-setup.md +63 -0
- package/skills/igniteui-angular-figma-to-app/references/theme-generation.md +120 -0
- package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +48 -50
- package/skills/igniteui-angular-generate-from-image-design/SKILL.md +11 -7
- package/skills/igniteui-angular-grids/SKILL.md +7 -3
- package/skills/igniteui-angular-grids/references/editing.md +1 -2
- package/skills/igniteui-angular-grids/references/grid-migration.md +1 -1
- package/skills/igniteui-angular-theming/SKILL.md +9 -5
- package/skills/igniteui-angular-theming/references/mcp-setup.md +12 -2
- package/types/igniteui-angular-button-group.d.ts +49 -34
- package/types/igniteui-angular-calendar.d.ts +33 -50
- package/types/igniteui-angular-card.d.ts +12 -17
- package/types/igniteui-angular-combo.d.ts +6 -0
- package/types/igniteui-angular-core.d.ts +10 -2
- package/types/igniteui-angular-grids-core.d.ts +48 -4
- package/types/igniteui-angular-grids-grid.d.ts +4 -0
- package/types/igniteui-angular-grids-lite.d.ts +5 -1
- package/types/igniteui-angular-grids-pivot-grid.d.ts +5 -1
- package/types/igniteui-angular-navigation-drawer.d.ts +1 -0
- package/types/igniteui-angular-radio.d.ts +5 -0
- package/types/igniteui-angular-virtual-scroll.d.ts +41 -13
- package/virtual-scroll/README.md +32 -1
|
@@ -1,35 +1,83 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Figma Components → Ignite UI Angular Component Map
|
|
2
2
|
|
|
3
3
|
> **Part of the [`igniteui-angular-figma-to-app`](../SKILL.md) skill.**
|
|
4
4
|
>
|
|
5
|
-
>
|
|
6
|
-
> Indigo variants) that designers use to build their app screens. Every component instance
|
|
7
|
-
> in a design file is drawn from one of these libraries and maps 1:1 to an Ignite UI
|
|
8
|
-
> Angular control.
|
|
5
|
+
> Use this file in Phase 2a to resolve every row of the Phase 1g Table A to an Ignite UI Angular selector, `get_doc` key, and key inputs. It has two entry points:
|
|
9
6
|
>
|
|
10
|
-
> Use
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
> match.
|
|
7
|
+
> - **Canonical Role Index** (next section). Use it for **Tier B and Tier C** layers: components from any other UI kit, or un-componentized frames, after they are normalized with [design-provenance.md](design-provenance.md).
|
|
8
|
+
> - **Kit Component Name** tables (the sections after it). Use them for **Tier A** layers from the Infragistics **Indigo.Design UI Kits** (Material, Fluent, Bootstrap, Indigo variants), whose layer names map to Ignite UI Angular directly.
|
|
9
|
+
>
|
|
10
|
+
> When a role or layer name is in neither, call `list_components` then `get_doc` on the closest match.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Canonical Role Index
|
|
15
|
+
|
|
16
|
+
Normalized roles from `design-provenance.md` → the Ignite UI Angular selector, and the section below that holds its full row.
|
|
17
|
+
|
|
18
|
+
| Canonical role (+ normalized props) | Ignite UI Angular | Section |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| `button` · high | `<button igxButton="contained">` | Button Components |
|
|
21
|
+
| `button` · medium (outlined) | `<button igxButton="outlined">` | Button Components |
|
|
22
|
+
| `button` · medium (tonal / secondary fill) | `<button igxButton="contained">` + `contained-button` tokens set to the **measured** tonal fill and text colors (usually a light shade such as `var(--ig-primary-100)`). Do not use the plain `secondary` palette: on a `material` baseline it holds the brand color, so tonal buttons would look like high-emphasis ones | Button Components |
|
|
23
|
+
| `button` · low | `<button igxButton="flat">` | Button Components |
|
|
24
|
+
| `button` · link | `<a igxButton="flat" routerLink="…">`, or a plain `<a>` styled as a link | Button Components |
|
|
25
|
+
| `button` · elevated | `<button igxButton="contained">` + elevation via tokens | Button Components |
|
|
26
|
+
| `button` · danger | Same variant + tokens bound to the `error` palette | Button Components |
|
|
27
|
+
| `icon-button` | `<button igxIconButton="flat\|outlined\|contained">` | Button Components |
|
|
28
|
+
| `fab` | `<button igxButton="fab">` | Button Components |
|
|
29
|
+
| `toggle-group` | `<igx-buttongroup>` | Button Components |
|
|
30
|
+
| `text-field` · outlined | `<igx-input-group type="border">` | Form Controls |
|
|
31
|
+
| `text-field` · filled | `<igx-input-group type="box">` | Form Controls |
|
|
32
|
+
| `text-field` · underlined | `<igx-input-group type="line">` | Form Controls |
|
|
33
|
+
| `textarea` | `<igx-input-group>` + `<textarea igxInput>` | Form Controls |
|
|
34
|
+
| `select` | `<igx-select>` | Form Controls |
|
|
35
|
+
| `combobox` (single, searchable) | `<igx-simple-combo>` | Form Controls |
|
|
36
|
+
| `combobox` (multi / tags) | `<igx-combo>` | Form Controls |
|
|
37
|
+
| `combobox` (free-text suggestions) | `igxAutocomplete` + `<igx-drop-down>` | Form Controls |
|
|
38
|
+
| `checkbox` / `radio` / `switch` | `<igx-checkbox>` / `<igx-radio-group>`+`<igx-radio>` / `<igx-switch>` | Form Controls |
|
|
39
|
+
| `slider` / `range-slider` | `<igx-slider>` (`type="slider\|range"`) | Form Controls |
|
|
40
|
+
| `rating` | `<igc-rating>` (web component) | Form Controls |
|
|
41
|
+
| `file-upload` | `<igx-input-group>` + `<input igxInput type="file">` — confirm with `search_docs` | Form Controls |
|
|
42
|
+
| `date-picker` / `date-range-picker` / `time-picker` / `calendar` | `<igx-date-picker>` / `<igx-date-range-picker>` / `<igx-time-picker>` / `<igx-calendar>` | Date & Time Pickers |
|
|
43
|
+
| `app-bar` | `<igx-navbar>` | Navigation Components |
|
|
44
|
+
| `side-nav` (expanded, always visible) | `<igx-nav-drawer [pin]="true" [isOpen]="true">` | Navigation Components |
|
|
45
|
+
| navigation rail (icon-only) | `<igx-nav-drawer [pin]="true" [isOpen]="false">` with an `igxDrawerMini` template. The mini template renders only while the drawer is closed | Navigation Components |
|
|
46
|
+
| `tabs` | `<igx-tabs>` | Navigation Components |
|
|
47
|
+
| `bottom-nav` | `<igx-bottom-nav>` | Navigation Components |
|
|
48
|
+
| `stepper` | `<igx-stepper>` | Navigation Components |
|
|
49
|
+
| `menu` | `<igx-drop-down>` + `igxToggleAction` | Form Controls (`_Dropdown Menu` row) |
|
|
50
|
+
| `accordion` / `expansion-panel` | `<igx-accordion>` / `<igx-expansion-panel>` | Layout Components |
|
|
51
|
+
| `card` | `<igx-card>` (only when header/media/content/actions anatomy fits) | Data Display Components |
|
|
52
|
+
| `list` | `<igx-list>` | Data Display Components |
|
|
53
|
+
| `tree` | `<igx-tree>` | Data Display Components |
|
|
54
|
+
| `data-table` (simple, read-only) | `<igx-grid-lite>` (requires the separate `igniteui-grid-lite` package; obtain approval before installing) — see the `igniteui-angular-grids` skill | Grid Components |
|
|
55
|
+
| `data-table` (editing, grouping, paging, summaries…) | `<igx-grid>` and family | Grid Components |
|
|
56
|
+
| `pagination` | `<igx-paginator>` | Data Display Components |
|
|
57
|
+
| `avatar` | `<igx-avatar>` | Data Display Components |
|
|
58
|
+
| `tag` / `count-badge` | `<igx-badge>` | Data Display Components |
|
|
59
|
+
| `chip` | `<igx-chip>` | Data Display Components |
|
|
60
|
+
| `progress-linear` / `progress-circular` | `<igx-linear-bar>` / `<igx-circular-bar>` | Data Display Components |
|
|
61
|
+
| `divider` | `<igx-divider>` | Data Display Components |
|
|
62
|
+
| `carousel` | `<igx-carousel>` | Data Display Components |
|
|
63
|
+
| `dialog` | `<igx-dialog>` | Feedback / Overlay Components |
|
|
64
|
+
| `toast` (text only) / (with action) | `<igx-toast>` / `<igx-snackbar>` | Feedback / Overlay Components |
|
|
65
|
+
| `inline-alert` | `<igx-banner>` | Feedback / Overlay Components |
|
|
66
|
+
| `tooltip` | `igxTooltip` + `igxTooltipTarget` | Directives |
|
|
67
|
+
| `chart-*` / `gauge-*` / `map` | See the DV tables | Chart / Gauge / Map Components |
|
|
68
|
+
| `color-picker` / `qr-code` | `<igc-color-picker>` / `<igc-qr-code>` (web components from `igniteui-webcomponents`) | Form Controls (web component setup note) |
|
|
69
|
+
| `breadcrumbs`, `sheet`, `skeleton` | No Angular component | Use semantic markup, document the substitution, and record it in the Phase 2d delta ledger |
|
|
14
70
|
|
|
15
71
|
---
|
|
16
72
|
|
|
17
|
-
## How to Use
|
|
73
|
+
## How to Use the Kit Tables
|
|
18
74
|
|
|
19
|
-
1. Find the kit component name (as it appears in the Figma layers panel or the
|
|
20
|
-
Indigo.Design kit library) in the **Kit Component Name** column.
|
|
75
|
+
1. Find the kit component name (as it appears in the Figma layers panel or the Indigo.Design kit library) in the **Kit Component Name** column.
|
|
21
76
|
2. Read the **Angular Selector** and **IgxXxx Class** for the template.
|
|
22
|
-
3. Try the **`get_doc` Key** with `get_doc({ framework: "angular", name: "<key>" })`.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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.
|
|
28
|
-
4. Consult **Key Inputs / Variants** for the properties most commonly configured from
|
|
29
|
-
Figma variants.
|
|
30
|
-
|
|
31
|
-
> The component names are identical across all four kit variants (Material, Fluent,
|
|
32
|
-
> Bootstrap, Indigo). The kit variant determines the theme style, not the component name.
|
|
77
|
+
3. Try the **`get_doc` Key** with `get_doc({ framework: "angular", name: "<key>" })`. **The doc catalog covers only a subset of components** (verify with `list_components` once). When no doc exists for a key, use the [`igniteui-angular-components`](../../igniteui-angular-components/SKILL.md) / [`igniteui-angular-grids`](../../igniteui-angular-grids/SKILL.md) skill reference files for usage patterns and `search_api` for member-level API lookups — do not guess.
|
|
78
|
+
4. Consult **Key Inputs / Variants** for the properties most commonly configured from Figma variants.
|
|
79
|
+
|
|
80
|
+
> The component names are identical across all four kit variants (Material, Fluent, Bootstrap, Indigo). The kit variant determines the theme style, not the component name.
|
|
33
81
|
|
|
34
82
|
---
|
|
35
83
|
|
|
@@ -37,65 +85,66 @@
|
|
|
37
85
|
|
|
38
86
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
|
|
39
87
|
| -------------------------------------- | ------------------------------------ | ------------------------- | -------------- | ---------------------------------------------------------- |
|
|
40
|
-
| `_Button/Flat` | `<button igxButton="flat">` | `IgxButtonDirective` | `button` | `igxButton="flat"`, `[disabled]`, size via `
|
|
88
|
+
| `_Button/Flat` | `<button igxButton="flat">` | `IgxButtonDirective` | `button` | `igxButton="flat"`, `[disabled]`, size via `--ig-size` |
|
|
41
89
|
| `_Button/Outlined` | `<button igxButton="outlined">` | `IgxButtonDirective` | `button` | `igxButton="outlined"` |
|
|
42
90
|
| `_Button/Contained` / `_Button/Raised` | `<button igxButton="contained">` | `IgxButtonDirective` | `button` | `igxButton="contained"` |
|
|
43
91
|
| `_Icon Button/Flat` | `<button igxIconButton="flat">` | `IgxIconButtonDirective` | `icon-button` | `igxIconButton="flat\|outlined\|contained"` |
|
|
44
92
|
| `_Icon Button/Outlined` | `<button igxIconButton="outlined">` | `IgxIconButtonDirective` | `icon-button` | — |
|
|
45
93
|
| `_Icon Button/Contained` | `<button igxIconButton="contained">` | `IgxIconButtonDirective` | `icon-button` | — |
|
|
46
|
-
| `_Button Group` | `<igx-buttongroup>` | `IgxButtonGroupComponent` | `button-group` | `[values]`, `[
|
|
94
|
+
| `_Button Group` | `<igx-buttongroup>` | `IgxButtonGroupComponent` | `button-group` | `[values]`, `[selectionMode]` (`single\|singleRequired\|multi`), `[alignment]` |
|
|
47
95
|
| `_FAB` / `Fab` | `<button igxButton="fab">` | `IgxButtonDirective` | `button` | `igxButton="fab"` |
|
|
48
96
|
|
|
49
97
|
---
|
|
50
98
|
|
|
51
99
|
## Form Controls
|
|
52
100
|
|
|
53
|
-
> **
|
|
54
|
-
> `border`-type inputs globally, set the `IGX_INPUT_GROUP_TYPE` injection token once in
|
|
55
|
-
> `app.config.ts` rather than adding `type="border"` to every component tag. This covers
|
|
56
|
-
> all compound components: `IgxSimpleCombo` (default: `box`), `IgxDatePickerComponent`
|
|
57
|
-
> (default: `line`), `IgxDateRangePickerComponent`, `IgxTimePickerComponent`,
|
|
58
|
-
> `IgxSelectComponent`.
|
|
101
|
+
> **The default input type is `box`** (since Ignite UI for Angular 22.0.0) for `igx-input-group` and every component that wraps it. When a Figma design uses one non-default type everywhere, set the `IGX_INPUT_GROUP_TYPE` injection token once in `app.config.ts` rather than adding `type` to every component tag. The token is read by `IgxInputGroupComponent`, `IgxComboComponent`, `IgxSimpleComboComponent`, `IgxSelectComponent`, `IgxDatePickerComponent`, `IgxDateRangePickerComponent`, and `IgxTimePickerComponent`.
|
|
59
102
|
>
|
|
60
103
|
> ```typescript
|
|
61
104
|
> import { IGX_INPUT_GROUP_TYPE } from 'igniteui-angular/input-group';
|
|
62
105
|
> // providers: [{ provide: IGX_INPUT_GROUP_TYPE, useValue: 'border' }]
|
|
63
106
|
> ```
|
|
64
107
|
>
|
|
65
|
-
> Detect the intended type from Phase 1d: look for hidden `size-[0.5px]` nodes whose
|
|
66
|
-
> `data-name` encodes the variant (e.g. `"Date Picker Type"` → `border`).
|
|
108
|
+
> Detect the intended type from Phase 1d: look for hidden `size-[0.5px]` nodes whose `data-name` encodes the variant (e.g. `"Date Picker Type"` → `border`).
|
|
67
109
|
|
|
68
110
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Default Type | Key Inputs / Variants |
|
|
69
111
|
| ------------------------------ | --------------------------------- | --------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
|
70
|
-
| `_Input/Line` | `<igx-input-group type="line">` | `IgxInputGroupComponent` | `input` | `
|
|
71
|
-
| `_Input/Border` | `<igx-input-group type="border">` | `IgxInputGroupComponent` | `input` | `
|
|
72
|
-
| `_Input/Box` / `_Input/Filled` | `<igx-input-group type="box">` | `IgxInputGroupComponent` | `input` | `
|
|
73
|
-
| `_Input/Search` | `<igx-input-group type="search">` | `IgxInputGroupComponent` | `input` | `
|
|
112
|
+
| `_Input/Line` | `<igx-input-group type="line">` | `IgxInputGroupComponent` | `input-group` | `box` | `type="line\|border\|box\|search"`, `[disabled]` |
|
|
113
|
+
| `_Input/Border` | `<igx-input-group type="border">` | `IgxInputGroupComponent` | `input-group` | `box` | `type="border"` |
|
|
114
|
+
| `_Input/Box` / `_Input/Filled` | `<igx-input-group type="box">` | `IgxInputGroupComponent` | `input-group` | `box` | `type="box"` |
|
|
115
|
+
| `_Input/Search` | `<igx-input-group type="search">` | `IgxInputGroupComponent` | `input-group` | `box` | `type="search"` |
|
|
74
116
|
| `_Combo` / `_ComboBox` | `<igx-combo>` | `IgxComboComponent` | `combo` | `box` | `[data]`, `[displayKey]`, `[valueKey]`, `[groupKey]`, `[allowCustomValues]` |
|
|
75
117
|
| `_Simple Combo` | `<igx-simple-combo>` | `IgxSimpleComboComponent` | `simple-combo` | `box` | `[data]`, `[displayKey]`, `[valueKey]` |
|
|
76
|
-
| `_Select` / `_Dropdown` | `<igx-select>` | `IgxSelectComponent` | `select` | `
|
|
118
|
+
| `_Select` / `_Dropdown` | `<igx-select>` | `IgxSelectComponent` | `select` | `box` | `<igx-select-item>` children, `[type]` |
|
|
77
119
|
| `_Autocomplete` | `igxAutocomplete` directive | `IgxAutocompleteDirective` | `autocomplete` | n/a | Used alongside `igx-input-group` + `igx-drop-down` |
|
|
120
|
+
| `_Text Area` | `<igx-input-group>` + `<textarea igxInput>` | `IgxInputGroupComponent` | `input-group` | `box` | `rows`, `[(ngModel)]` on the `textarea` |
|
|
121
|
+
| `_File Upload` | `<igx-input-group>` + `<input igxInput type="file">` | `IgxInputGroupComponent` | `input-group` | `box` | `multiple`, `accept` on the `input` |
|
|
122
|
+
| `_Dropdown Menu` / `_Menu` | `<igx-drop-down>` + `igxToggleAction` on the trigger | `IgxDropDownComponent` | `drop-down` | n/a | `<igx-drop-down-item>` children, `(selectionChanging)` |
|
|
123
|
+
| `_Color Picker` | `<igc-color-picker>` (**web component**) | `IgcColorPickerComponent` | search `color picker` | n/a | `value`; `[(ngModel)]` / `formControlName` via `IgcFormControlDirective` |
|
|
78
124
|
| `_Checkbox` | `<igx-checkbox>` | `IgxCheckboxComponent` | `checkbox` | n/a | `[(ngModel)]`, `[checked]`, `[indeterminate]`, `[disabled]`, `labelPosition` |
|
|
79
125
|
| `_Radio` / `_Radio Button` | `<igx-radio>` | `IgxRadioComponent` | `radio-button` | n/a | `[value]`, `[(ngModel)]`; wrap multiple in `<igx-radio-group>` |
|
|
80
126
|
| `_Switch` / `_Toggle` | `<igx-switch>` | `IgxSwitchComponent` | `switch` | n/a | `[(ngModel)]`, `[checked]`, `labelPosition` |
|
|
81
|
-
| `_Slider` / `_Range Slider` | `<igx-slider>` | `IgxSliderComponent` | `slider`
|
|
82
|
-
| `_Rating` | `<igc-rating>` | `IgcRatingComponent` (**web component** — `igniteui-webcomponents` package) |
|
|
127
|
+
| `_Slider` / `_Range Slider` | `<igx-slider>` | `IgxSliderComponent` | `slider-slider` | n/a | `type="slider\|range"` (`IgxSliderType`), `[minValue]`, `[maxValue]`, `[step]`, `[(ngModel)]` |
|
|
128
|
+
| `_Rating` | `<igc-rating>` | `IgcRatingComponent` (**web component** — `igniteui-webcomponents` package) | `rating` | n/a | `value`; `[(ngModel)]` / `formControlName` via `IgcFormControlDirective`; `igcChange` event |
|
|
83
129
|
|
|
84
|
-
> **
|
|
130
|
+
> **Web component setup (rating, color picker, QR code, chat):** these need the `igniteui-webcomponents` package, an **optional** peer dependency of `igniteui-angular`. Install the version range `igniteui-angular` declares in its `peerDependencies` (check `node_modules/igniteui-angular/package.json`), after the user approves. In the component:
|
|
85
131
|
>
|
|
86
132
|
> ```typescript
|
|
87
133
|
> import { IgcRatingComponent, defineComponents } from 'igniteui-webcomponents';
|
|
134
|
+
> import { IgcFormControlDirective } from 'igniteui-angular/directives'; // ngModel / formControlName
|
|
88
135
|
> defineComponents(IgcRatingComponent);
|
|
89
136
|
> // Add CUSTOM_ELEMENTS_SCHEMA to the component's schemas array
|
|
90
137
|
> ```
|
|
91
138
|
|
|
92
139
|
---
|
|
93
140
|
|
|
141
|
+
## Date & Time Pickers
|
|
142
|
+
|
|
94
143
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
|
|
95
144
|
| -------------------- | ------------------------- | ----------------------------- | ------------------- | ------------------------------------------------------------------------------------------- |
|
|
96
145
|
| `_Date Picker` | `<igx-date-picker>` | `IgxDatePickerComponent` | `date-picker` | `[(ngModel)]`, `[minValue]`, `[maxValue]`, `[mode]` (`dropdown\|dialog`), `[displayFormat]` |
|
|
97
146
|
| `_Date Range Picker` | `<igx-date-range-picker>` | `IgxDateRangePickerComponent` | `date-range-picker` | `[(ngModel)]`, `[minValue]`, `[maxValue]`, `[mode]` |
|
|
98
|
-
| `_Time Picker` | `<igx-time-picker>` | `IgxTimePickerComponent` | `time-picker` | `[(ngModel)]`, `[mode]` (`dropdown\|dialog`), `[
|
|
147
|
+
| `_Time Picker` | `<igx-time-picker>` | `IgxTimePickerComponent` | `time-picker` | `[(ngModel)]`, `[mode]` (`dropdown\|dialog`), `[inputFormat]`, `[displayFormat]` |
|
|
99
148
|
| `_Calendar` | `<igx-calendar>` | `IgxCalendarComponent` | `calendar` | `[selection]` (`single\|multi\|range`), `[(ngModel)]`, `[viewDate]`, `[disabledDates]` |
|
|
100
149
|
|
|
101
150
|
---
|
|
@@ -107,7 +156,7 @@
|
|
|
107
156
|
| `_Navbar` | `<igx-navbar>` | `IgxNavbarComponent` | `navbar` | `[title]`, `igxNavbarAction` slot, `igxNavbarTitle` slot |
|
|
108
157
|
| `_Navigation Drawer` / `_Side Nav` | `<igx-nav-drawer>` | `IgxNavigationDrawerComponent` | `navdrawer` | `[pin]`, `[pinThreshold]`, `[miniWidth]`, `[width]`, `igxDrawer` + `igxDrawerMini` templates |
|
|
109
158
|
| `_Tabs` | `<igx-tabs>` | `IgxTabsComponent` | `tabs` | `<igx-tab-item>` with `<igx-tab-header>` and `<igx-tab-content>` children, `[tabAlignment]` |
|
|
110
|
-
| `_Bottom Navigation` / `_Bottom Nav` | `<igx-bottom-nav>` | `IgxBottomNavComponent` | `
|
|
159
|
+
| `_Bottom Navigation` / `_Bottom Nav` | `<igx-bottom-nav>` | `IgxBottomNavComponent` | `tabbar`| `<igx-bottom-nav-item>` children with `<igx-bottom-nav-header>` and `<igx-bottom-nav-content>` |
|
|
111
160
|
| `_Stepper` | `<igx-stepper>` | `IgxStepperComponent` | `stepper` | `[orientation]` (`horizontal\|vertical`), `[stepType]`, `[linear]`; `<igx-step>` children |
|
|
112
161
|
|
|
113
162
|
---
|
|
@@ -118,7 +167,7 @@
|
|
|
118
167
|
| ------------------ | ----------------------- | ---------------------------- | ----------------- | ---------------------------------------------------------------------- |
|
|
119
168
|
| `_Accordion` | `<igx-accordion>` | `IgxAccordionComponent` | `accordion` | `[singleBranchExpand]`; `<igx-expansion-panel>` children |
|
|
120
169
|
| `_Expansion Panel` | `<igx-expansion-panel>` | `IgxExpansionPanelComponent` | `expansion-panel` | `<igx-expansion-panel-header>` + `<igx-expansion-panel-body>` |
|
|
121
|
-
| `_Splitter` | `<igx-splitter>` | `IgxSplitterComponent` | `splitter` | `[type]` (
|
|
170
|
+
| `_Splitter` | `<igx-splitter>` | `IgxSplitterComponent` | `splitter` | `[type]="SplitterType.Vertical"` (numeric enum); `<igx-splitter-pane>` children |
|
|
122
171
|
| `_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
172
|
| `_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) |
|
|
124
173
|
|
|
@@ -130,17 +179,17 @@
|
|
|
130
179
|
| ------------------------------------ | -------------------- | --------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
131
180
|
| `_List` | `<igx-list>` | `IgxListComponent` | `list` | `<igx-list-item>` children; `igxListLine`, `igxListThumbnail`, `igxListAction` slot directives |
|
|
132
181
|
| `_Tree` / `_Tree View` | `<igx-tree>` | `IgxTreeComponent` | `tree` | `[selection]`; `<igx-tree-node>` children |
|
|
133
|
-
| `_Card` | `<igx-card>` | `IgxCardComponent` | `card` |
|
|
182
|
+
| `_Card` | `<igx-card>` | `IgxCardComponent` | `card` | `<igx-card-header>`, `<igx-card-media>`, `<igx-card-content>`, `<igx-card-actions>` elements; `igxCardThumbnail` attribute; `[horizontal]` |
|
|
134
183
|
| `_Chip` / `_Chips` | `<igx-chip>` | `IgxChipComponent` | `chip` | `[removable]`, `[selectable]`, `[selected]`, `[disabled]`; wrap in `<igx-chips-area>` |
|
|
135
184
|
| `_Avatar` | `<igx-avatar>` | `IgxAvatarComponent` | `avatar` | `[src]`, `[initials]`, `[icon]`, `[shape]` (`circle\|rounded\|square`), `[size]` |
|
|
136
185
|
| `_Badge` | `<igx-badge>` | `IgxBadgeComponent` | `badge` | `[value]`, `[type]` (`primary\|info\|success\|warning\|error`), `[shape]` (`square\|rounded`) |
|
|
137
186
|
| `_Icon` | `<igx-icon>` | `IgxIconComponent` | `icon` | `[family]`, `[name]`; content text (ligature-based) |
|
|
138
187
|
| `_Carousel` | `<igx-carousel>` | `IgxCarouselComponent` | `carousel` | `[loop]`, `[navigation]`, `[pause]`; `<igx-slide>` children |
|
|
139
188
|
| `_Paginator` | `<igx-paginator>` | `IgxPaginatorComponent` | `paginator` | `[totalRecords]`, `[perPage]`, `[selectOptions]` |
|
|
140
|
-
| `_Linear Progress` / `_Progress Bar` | `<igx-linear-bar>` | `IgxLinearProgressBarComponent` | `linear-progress
|
|
141
|
-
| `_Circular Progress` | `<igx-circular-bar>` | `IgxCircularProgressBarComponent` | `circular-progress
|
|
142
|
-
| `_Divider` | `<igx-divider>` | `
|
|
143
|
-
| `_Chat` | `<igx-chat>` | `IgxChatComponent` | `chat` | `[messages]`, `[
|
|
189
|
+
| `_Linear Progress` / `_Progress Bar` | `<igx-linear-bar>` | `IgxLinearProgressBarComponent` | `linear-progress` | `[value]`, `[max]`, `[indeterminate]`, `[type]` (`default\|success\|info\|warning\|error`), `[striped]` |
|
|
190
|
+
| `_Circular Progress` | `<igx-circular-bar>` | `IgxCircularProgressBarComponent` | `circular-progress` | `[value]`, `[max]`, `[indeterminate]`, `[animate]` |
|
|
191
|
+
| `_Divider` | `<igx-divider>` | `IgxDividerComponent` | `divider` | `[type]` (`solid\|dashed`), `[vertical]` |
|
|
192
|
+
| `_Chat` | `<igx-chat>` | `IgxChatComponent` | `chat` | `[messages]`, `[draftMessage]`, `[options]`, `[templates]`, `(messageCreated)`; needs `igniteui-webcomponents` (see the web component setup note) |
|
|
144
193
|
|
|
145
194
|
---
|
|
146
195
|
|
|
@@ -151,7 +200,7 @@
|
|
|
151
200
|
| `_Dialog` | `<igx-dialog>` | `IgxDialogComponent` | `dialog` | `[title]`, `[leftButtonLabel]`, `[rightButtonLabel]`, `[closeOnOutsideSelect]`, `[isModal]` |
|
|
152
201
|
| `_Toast` | `<igx-toast>` | `IgxToastComponent` | `toast` | `[displayTime]`, `[autoHide]`; opened via `toast.open()` |
|
|
153
202
|
| `_Snackbar` | `<igx-snackbar>` | `IgxSnackbarComponent` | `snackbar` | `[displayTime]`, `[autoHide]`, `[actionText]`; opened via `snackbar.open(message)` |
|
|
154
|
-
| `_Banner` | `<igx-banner>` | `IgxBannerComponent` | `banner` | `<igx-icon>` projected;
|
|
203
|
+
| `_Banner` | `<igx-banner>` | `IgxBannerComponent` | `banner` | `<igx-icon>` projected; `<igx-banner-actions>` for action buttons |
|
|
155
204
|
|
|
156
205
|
---
|
|
157
206
|
|
|
@@ -159,42 +208,35 @@
|
|
|
159
208
|
|
|
160
209
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
|
|
161
210
|
| ---------------------- | ------------------------- | ------------------------------ | ------------------- | ------------------------------------------------------------------------------------ |
|
|
162
|
-
| `_Grid` / `_Data Grid` | `<igx-grid>` | `IgxGridComponent` | `grid`
|
|
163
|
-
|
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
211
|
+
| `_Grid` / `_Data Grid` | `<igx-grid>` | `IgxGridComponent` | `grid-grid` | `[data]`, `[primaryKey]`, `[rowEditable]`, `<igx-column>` children |
|
|
212
|
+
| Lightweight table | `<igx-grid-lite>` | `IgxGridLiteComponent` | `grid-lite-overview` | Read-only display with sorting/filtering/virtualization; import from `igniteui-angular/grids/lite`. Needs the `igniteui-grid-lite` package (an optional peer dependency of `igniteui-angular`, `~0.10.0`): check `package.json` and ask for approval before installing. Upgrade to `igx-grid` when editing, selection, or paging is shown |
|
|
213
|
+
| `_Tree Grid` | `<igx-tree-grid>` | `IgxTreeGridComponent` | `treegrid-tree-grid` | `[data]`, `[primaryKey]`, `[foreignKey]` or `[childDataKey]` |
|
|
214
|
+
| `_Hierarchical Grid` | `<igx-hierarchical-grid>` | `IgxHierarchicalGridComponent` | `hierarchicalgrid-hierarchical-grid` | `[data]`, `[primaryKey]`; nested `<igx-row-island>` for child grids |
|
|
215
|
+
| `_Pivot Grid` | `<igx-pivot-grid>` | `IgxPivotGridComponent` | `pivotGrid-pivot-grid` | `[data]`, `[pivotConfiguration]` |
|
|
166
216
|
|
|
167
|
-
> **Grid features:** search for feature-specific docs using `search_docs`. Examples:
|
|
168
|
-
> `"grid filtering"`, `"grid sorting"`, `"grid paging"`, `"grid row selection"`,
|
|
169
|
-
> `"grid cell editing"`, `"grid column pinning"`, `"grid virtualization"`.
|
|
217
|
+
> **Grid features:** search for feature-specific docs using `search_docs`. Examples: `"grid filtering"`, `"grid sorting"`, `"grid paging"`, `"grid row selection"`, `"grid cell editing"`, `"grid column pinning"`, `"grid virtualization"`.
|
|
170
218
|
|
|
171
219
|
---
|
|
172
220
|
|
|
173
221
|
## Chart & Data Visualization Components
|
|
174
222
|
|
|
175
|
-
> DV components have **no Sass design tokens**. All visual configuration is done via
|
|
176
|
-
> component inputs. Do **not** call `theming_get_component_design_tokens` for these.
|
|
223
|
+
> DV components have **no Sass design tokens**. All visual configuration is done via component inputs. Do **not** call `theming_get_component_design_tokens` for these.
|
|
177
224
|
>
|
|
178
|
-
> **`get_doc`:**
|
|
179
|
-
> [`charts.md`](../../igniteui-angular-components/references/charts.md) reference in the
|
|
180
|
-
> components skill for usage patterns and `search_api` for member lookups.
|
|
225
|
+
> **`get_doc`:** chart docs are `charts-chart-overview` plus one `types-<type>-chart` page per chart type (keys below). The [`charts.md`](../../igniteui-angular-components/references/charts.md) reference in the components skill covers setup, and `search_api` covers member lookups.
|
|
181
226
|
>
|
|
182
|
-
> **Series colors:** chart components use their own default brush palette. Always
|
|
183
|
-
> explicitly set `[brushes]` and `[outlines]` with space-separated hex colors extracted
|
|
184
|
-
> from the Phase 1d design context to match the Figma series colors:
|
|
185
|
-
> `[brushes]="'#9DE772 #6DB1FF'"`
|
|
227
|
+
> **Series colors:** chart components use their own default brush palette. Always explicitly set `[brushes]` and `[outlines]` with space-separated hex colors extracted from the Phase 1d design context to match the Figma series colors: `[brushes]="'#9DE772 #6DB1FF'"`
|
|
186
228
|
|
|
187
229
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
|
|
188
230
|
| ---------------------------------------------------------------- | -------------------------------------- | ---------------------------- | ----------------------- | ------------------------------------------------------------------------------------- |
|
|
189
|
-
| `_Category Chart` / `_Line Chart` / `_Area Chart` / `_Bar Chart` | `<igx-category-chart>` | `IgxCategoryChartComponent` |
|
|
190
|
-
| `_Pie Chart`
|
|
191
|
-
| `_Financial Chart` / `_Stock Chart` | `<igx-financial-chart>` | `IgxFinancialChartComponent` |
|
|
192
|
-
| `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` |
|
|
193
|
-
| `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` |
|
|
194
|
-
| `_Doughnut Chart`
|
|
195
|
-
| `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` |
|
|
196
|
-
| `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` |
|
|
197
|
-
| `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` |
|
|
231
|
+
| `_Category Chart` / `_Line Chart` / `_Area Chart` / `_Bar Chart` | `<igx-category-chart>` | `IgxCategoryChartComponent` | `types-line-chart` / `types-area-chart` / `types-column-chart` / `types-bar-chart` | `[dataSource]`, `[chartType]`, `[brushes]`, `[outlines]`, `[legend]`, `[markerTypes]` |
|
|
232
|
+
| `_Pie Chart` | `<igx-pie-chart>` | `IgxPieChartComponent` | `types-pie-chart` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
|
|
233
|
+
| `_Financial Chart` / `_Stock Chart` | `<igx-financial-chart>` | `IgxFinancialChartComponent` | `types-stock-chart` | `[dataSource]`, `[chartType]` (`Candle\|Bar\|Line`), `[volumeType]` |
|
|
234
|
+
| `_Sparkline` | `<igx-sparkline>` | `IgxSparklineComponent` | `types-sparkline-chart` | `[dataSource]`, `[valueMemberPath]`, `[displayType]` (`Line\|Area\|Column\|WinLoss`) |
|
|
235
|
+
| `_Data Chart` | `<igx-data-chart>` | `IgxDataChartComponent` | `charts-chart-overview` | `[dataSource]`; series added as child elements |
|
|
236
|
+
| `_Doughnut Chart` / `_Donut Chart` | `<igx-doughnut-chart>` | `IgxDoughnutChartComponent` | `types-donut-chart` | `[dataSource]`; `<igx-ring-series>` children |
|
|
237
|
+
| `_Treemap` | `<igx-treemap>` | `IgxTreemapComponent` | `types-treemap-chart` | `[dataSource]`, `[valueMemberPath]`, `[labelMemberPath]` |
|
|
238
|
+
| `_Funnel Chart` | `<igx-funnel-chart>` | `IgxFunnelChartComponent` | search `funnel chart` | `[dataSource]`, `[valueMemberPath]`, `[innerLabelMemberPath]`, `[outerLabelMemberPath]` |
|
|
239
|
+
| `_Scatter Chart` / `_Bubble Chart` | `<igx-data-chart>` with scatter series | `IgxDataChartComponent` | `types-scatter-chart` / `types-bubble-chart` | Use `<igx-scatter-series>` or `<igx-bubble-series>` |
|
|
198
240
|
|
|
199
241
|
---
|
|
200
242
|
|
|
@@ -216,7 +258,7 @@
|
|
|
216
258
|
|
|
217
259
|
| Kit Component Name | Angular Selector | IgxXxx Class | `get_doc` Key | Key Inputs / Variants |
|
|
218
260
|
| ------------------ | ---------------------- | --------------------------- | ------------- | -------------------------------------------------------------------------------------------------- |
|
|
219
|
-
| `_Geographic Map` | `<igx-geographic-map>` | `IgxGeographicMapComponent` | `map`
|
|
261
|
+
| `_Geographic Map` | `<igx-geographic-map>` | `IgxGeographicMapComponent` | `geo-map` | `[zoomable]`; `<igx-geographic-symbol-series>` or `<igx-geographic-shape-series>` for data overlay |
|
|
220
262
|
|
|
221
263
|
---
|
|
222
264
|
|
|
@@ -224,7 +266,7 @@
|
|
|
224
266
|
|
|
225
267
|
| Kit Component Name | Angular Selector | Directive Class | `get_doc` Key | Notes |
|
|
226
268
|
| ------------------ | -------------------------------------------- | --------------------- | ------------- | --------------------------------------------------------------------------- |
|
|
227
|
-
| `_Tooltip` | `
|
|
269
|
+
| `_Tooltip` | `igxTooltipTarget` on the trigger + `igxTooltip` on the tooltip element | `IgxTooltipDirective` | `tooltip` | Pair `igxTooltipTarget` on the host and `igxTooltip` on the tooltip element |
|
|
228
270
|
| `_Ripple` | `igxRipple` attribute | `IgxRippleDirective` | `ripple` | Add to any interactive element |
|
|
229
271
|
|
|
230
272
|
---
|
|
@@ -235,42 +277,35 @@
|
|
|
235
277
|
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
236
278
|
| Open-source package | `import { Igx... } from 'igniteui-angular/<entry-point>'` |
|
|
237
279
|
| Licensed package | `import { Igx... } from '@infragistics/igniteui-angular/<entry-point>'` |
|
|
238
|
-
| Web components (Tile Manager, Dock Manager) | `
|
|
280
|
+
| Web components (Tile Manager, Dock Manager) | Dock Manager: `defineComponents(IgcDockManagerComponent)` from `igniteui-dockmanager` (`defineCustomElements()` is deprecated since 2.0.0) / see [`layout-manager.md`](../../igniteui-angular-components/references/layout-manager.md) in the components skill |
|
|
239
281
|
| Rating web component | `import { IgcRatingComponent, defineComponents } from 'igniteui-webcomponents'` + `CUSTOM_ELEMENTS_SCHEMA` |
|
|
240
282
|
| DV charts/gauges/maps | Require separate `igniteui-angular-charts`, `igniteui-angular-gauges`, or `igniteui-angular-maps` packages |
|
|
241
283
|
|
|
242
|
-
> **DV package install:** determine the installed Ignite UI version first
|
|
243
|
-
> (`npm list igniteui-angular`), then install the closest matching DV package version.
|
|
244
|
-
> If no exact version match exists, install the closest lower version with
|
|
245
|
-
> `--legacy-peer-deps`. Always ask for approval before installing any new package.
|
|
284
|
+
> **DV package install:** determine the installed Ignite UI version first (`npm list igniteui-angular`), then install the closest matching DV package version. If no exact version match exists, install the closest lower version with `--legacy-peer-deps`. Always ask for approval before installing any new package.
|
|
246
285
|
|
|
247
286
|
---
|
|
248
287
|
|
|
249
288
|
## Material Icons Extended (`@igniteui/material-icons-extended`)
|
|
250
289
|
|
|
251
|
-
The Indigo.Design UI Kit for Material includes domain and navigation icons from
|
|
252
|
-
`@igniteui/material-icons-extended`. These appear in Figma component descriptions with
|
|
253
|
-
the suffix **"material extended"**.
|
|
290
|
+
The Indigo.Design UI Kit for Material includes domain and navigation icons from `@igniteui/material-icons-extended`. These appear in Figma component descriptions with the suffix **"material extended"**.
|
|
254
291
|
|
|
255
|
-
**Detection in Phase 1d:** scan all `data-name` or component description strings for
|
|
256
|
-
"material extended". If found, add this package to the required packages list and ask
|
|
257
|
-
for user approval before Phase 4.
|
|
292
|
+
**Detection in Phase 1d:** scan all `data-name` or component description strings for "material extended".
|
|
258
293
|
|
|
259
|
-
**Setup:**
|
|
260
|
-
|
|
261
|
-
```bash
|
|
262
|
-
npm install @igniteui/material-icons-extended
|
|
263
|
-
```
|
|
294
|
+
**Setup:** the package is already a dependency of `igniteui-angular`, so it is installed. Add it to the app's own `package.json` (with the user's approval) only when a strict package manager (pnpm, Yarn PnP) refuses the direct import.
|
|
264
295
|
|
|
265
296
|
```typescript
|
|
266
|
-
// In root component (e.g. app.ts)
|
|
297
|
+
// In the root component (e.g. app.ts)
|
|
298
|
+
import { Component, OnInit, inject } from '@angular/core';
|
|
267
299
|
import { IgxIconService } from 'igniteui-angular/icon';
|
|
268
|
-
import {
|
|
300
|
+
import { all } from '@igniteui/material-icons-extended';
|
|
301
|
+
// To register fewer, import individual icons instead:
|
|
302
|
+
// import { creditCards, piggyBank } from '@igniteui/material-icons-extended';
|
|
269
303
|
|
|
270
|
-
|
|
304
|
+
@Component({ selector: 'app-root', templateUrl: './app.html' })
|
|
305
|
+
export class App implements OnInit {
|
|
271
306
|
private iconService = inject(IgxIconService);
|
|
272
307
|
ngOnInit() {
|
|
273
|
-
for (const icon of
|
|
308
|
+
for (const icon of all) {
|
|
274
309
|
this.iconService.addSvgIconFromText(icon.name, icon.value, 'imx-icons');
|
|
275
310
|
}
|
|
276
311
|
}
|
|
@@ -291,7 +326,26 @@ export class AppComponent implements OnInit {
|
|
|
291
326
|
| loan, borrow | `loan` |
|
|
292
327
|
| crypto, bitcoin | `bitcoin` |
|
|
293
328
|
| calculator, math | `calculator` |
|
|
294
|
-
|
|
329
|
+
|
|
330
|
+
### Icons from other kits
|
|
331
|
+
|
|
332
|
+
Third-party kits come with their own icon sets. Identify the set from the icon instance names (`lucide/chevron-down`, `ic_fluent_…`, `Icon / arrow-right`, `Symbols/…`), from the component descriptions, or from the kit fingerprint in `design-provenance.md`. Then register the glyphs the design uses **from that set's SVG package** with `IgxIconService.addSvgIconFromText(name, svgText, family)`:
|
|
333
|
+
|
|
334
|
+
| Icon set | SVG source package (confirm name, version, and license before installing) |
|
|
335
|
+
| --- | --- |
|
|
336
|
+
| Material Symbols | `@material-symbols/svg-400` (pick the weight/fill the design uses) |
|
|
337
|
+
| Fluent System Icons | `@fluentui/svg-icons` |
|
|
338
|
+
| Lucide (shadcn/ui kits) | `lucide-static` |
|
|
339
|
+
| Bootstrap Icons | `bootstrap-icons` |
|
|
340
|
+
| Heroicons | `heroicons` |
|
|
341
|
+
| Phosphor | `@phosphor-icons/core` |
|
|
342
|
+
| Ant Design Icons | `@ant-design/icons-svg` |
|
|
343
|
+
|
|
344
|
+
```html
|
|
345
|
+
<igx-icon family="lucide" name="chevron-down"></igx-icon>
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Register only the glyphs the design uses. When the set is paid (for example Untitled UI Icons Pro) or unknown, or is not licensed for the web (SF Symbols), extract the used glyphs as SVG with Tier 1 Method B from `asset-extraction.md` and register those instead. Tell the user which icons came from a licensed set.
|
|
295
349
|
|
|
296
350
|
---
|
|
297
351
|
|
|
@@ -299,7 +353,7 @@ export class AppComponent implements OnInit {
|
|
|
299
353
|
|
|
300
354
|
When you encounter a Figma layer that is **not in this table**:
|
|
301
355
|
|
|
302
|
-
1.
|
|
356
|
+
1. Normalize it with [design-provenance.md](design-provenance.md) (Tier B variant properties, or Tier C structure) and retry the Canonical Role Index. Otherwise, extract the visual pattern (is it a list? a form field? a card?)
|
|
303
357
|
2. Call `list_components({ framework: "angular" })` and scan for the closest match
|
|
304
358
|
3. Call `get_doc` on the closest match before generating code
|
|
305
359
|
4. If no Ignite UI component matches after a genuine attempt, use plain semantic HTML and document the reason in a code comment
|