igniteui-cli 15.2.2-alpha.2 → 15.2.2
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/lib/PromptSession.js +1 -1
- package/lib/commands/ai-config.d.ts +9 -2
- package/lib/commands/ai-config.js +49 -14
- package/lib/commands/new.js +4 -1
- 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 +3 -3
- 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-components/references/data-display.md +2 -1
- 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 +45 -6
- 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 +3 -2
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/references/common-patterns.md +8 -0
- package/templates/react/igr-ts/accordion/default/index.js +2 -1
- package/templates/react/igr-ts/avatar/default/index.js +2 -1
- package/templates/react/igr-ts/badge/default/index.js +2 -1
- package/templates/react/igr-ts/banner/default/index.js +2 -1
- package/templates/react/igr-ts/button/default/index.js +2 -1
- package/templates/react/igr-ts/button-group/default/index.js +2 -1
- package/templates/react/igr-ts/calendar/default/index.js +2 -1
- package/templates/react/igr-ts/card/default/index.js +2 -1
- package/templates/react/igr-ts/checkbox/default/index.js +2 -1
- package/templates/react/igr-ts/chip/default/index.js +2 -1
- package/templates/react/igr-ts/circular-progress/default/index.js +2 -1
- package/templates/react/igr-ts/constants.d.ts +2 -0
- package/templates/react/igr-ts/constants.js +5 -0
- package/templates/react/igr-ts/custom-templates/subscription-form/index.js +2 -1
- package/templates/react/igr-ts/date-picker/default/index.js +2 -1
- package/templates/react/igr-ts/divider/default/index.js +2 -1
- package/templates/react/igr-ts/dropdown/default/index.js +2 -1
- package/templates/react/igr-ts/expansion-panel/default/index.js +2 -1
- package/templates/react/igr-ts/form/default/index.js +2 -1
- package/templates/react/igr-ts/grid/basic/index.js +2 -1
- package/templates/react/igr-ts/icon/default/index.js +2 -1
- package/templates/react/igr-ts/icon-button/default/index.js +2 -1
- package/templates/react/igr-ts/input/default/index.js +2 -1
- package/templates/react/igr-ts/linear-progress/default/index.js +2 -1
- package/templates/react/igr-ts/list/default/index.js +2 -1
- package/templates/react/igr-ts/navbar/default/index.js +2 -1
- package/templates/react/igr-ts/projects/_base/files/package.json +1 -1
- 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/react/igr-ts/radio-group/default/index.js +2 -1
- package/templates/react/igr-ts/rating/default/index.js +2 -1
- package/templates/react/igr-ts/ripple/default/index.js +2 -1
- package/templates/react/igr-ts/slider/default/index.js +2 -1
- package/templates/react/igr-ts/switch/default/index.js +2 -1
- package/templates/react/igr-ts/tabs/default/index.js +2 -1
- package/templates/react/igr-ts/text-area/default/index.js +2 -1
- package/templates/react/igr-ts/tree/default/index.js +2 -1
- package/templates/webcomponents/igc-ts/grid/default/index.js +1 -1
- package/templates/webcomponents/igc-ts/grid/grid-editing/index.js +1 -1
- package/templates/webcomponents/igc-ts/grid/grid-summaries/index.js +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/package.json +1 -1
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +2 -2
- 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/templates/webcomponents/igc-ts/tree/default/index.js +1 -1
package/lib/PromptSession.js
CHANGED
|
@@ -58,7 +58,7 @@ class PromptSession extends cli_core_1.BasePromptSession {
|
|
|
58
58
|
}
|
|
59
59
|
configureAI(frameworkId) {
|
|
60
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
yield (0, ai_config_1.configure)(frameworkId);
|
|
61
|
+
yield (0, ai_config_1.configure)(frameworkId, { verbose: false });
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
templateSelectedTask(type = "component") {
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { type AIAgentTarget, type AiCodingAssistant } from "@igniteui/cli-core";
|
|
2
2
|
import { CommandModule } from "yargs";
|
|
3
3
|
export declare function configureMCP(assistants: AiCodingAssistant[]): void;
|
|
4
|
-
export declare function configureSkills(agents: AIAgentTarget[], framework: string): void;
|
|
4
|
+
export declare function configureSkills(agents: AIAgentTarget[], framework: string, verbose?: boolean): void;
|
|
5
|
+
export declare function configureInstructions(agents: AIAgentTarget[], framework: string, verbose?: boolean): void;
|
|
5
6
|
type AIAgentOption = AIAgentTarget | "none";
|
|
6
7
|
type AIAssistantOption = AiCodingAssistant | "none";
|
|
7
|
-
|
|
8
|
+
interface ConfigureOptions {
|
|
9
|
+
agents?: AIAgentOption[];
|
|
10
|
+
assistants?: AIAssistantOption[];
|
|
11
|
+
skills?: boolean;
|
|
12
|
+
verbose?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function configure(framework: string, options?: ConfigureOptions): Promise<{
|
|
8
15
|
agents: AIAgentTarget[];
|
|
9
16
|
assistants: AiCodingAssistant[];
|
|
10
17
|
}>;
|
|
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.configureMCP = configureMCP;
|
|
13
13
|
exports.configureSkills = configureSkills;
|
|
14
|
+
exports.configureInstructions = configureInstructions;
|
|
14
15
|
exports.configure = configure;
|
|
15
16
|
const cli_core_1 = require("@igniteui/cli-core");
|
|
16
17
|
function configureMCP(assistants) {
|
|
@@ -18,32 +19,66 @@ function configureMCP(assistants) {
|
|
|
18
19
|
const { mcpFilePath } = cli_core_1.AI_ASSISTANT_MCP_CONFIGS[assistant];
|
|
19
20
|
const modified = (0, cli_core_1.addMcpServers)(assistant);
|
|
20
21
|
if (!modified) {
|
|
21
|
-
cli_core_1.Util.log(` Ignite UI MCP servers already configured in ${mcpFilePath}`);
|
|
22
|
+
cli_core_1.Util.log(cli_core_1.Util.greenCheck() + ` Ignite UI MCP servers already configured in ${mcpFilePath}`);
|
|
22
23
|
}
|
|
23
24
|
else {
|
|
24
25
|
cli_core_1.Util.log(cli_core_1.Util.greenCheck() + ` MCP servers configured in ${mcpFilePath}`);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
|
-
function
|
|
29
|
+
function logFileActions(result) {
|
|
30
|
+
for (const detail of result.details) {
|
|
31
|
+
if (detail.action === "created") {
|
|
32
|
+
cli_core_1.Util.log(` Created ${detail.path}`);
|
|
33
|
+
}
|
|
34
|
+
else if (detail.action === "updated") {
|
|
35
|
+
cli_core_1.Util.log(` Updated ${detail.path}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function logResultSummary(result, label) {
|
|
40
|
+
if (result.failed > 0) {
|
|
41
|
+
cli_core_1.Util.warn(`Failed to write ${result.failed} ${label} file(s) out of ${result.found}.`, "yellow");
|
|
42
|
+
}
|
|
43
|
+
else if (result.found > 0 && result.skipped === result.found) {
|
|
44
|
+
cli_core_1.Util.log(cli_core_1.Util.greenCheck() + ` ${label} file(s) already up-to-date.`);
|
|
45
|
+
}
|
|
46
|
+
else if (result.found > 0) {
|
|
47
|
+
const written = result.found - result.skipped;
|
|
48
|
+
cli_core_1.Util.log(cli_core_1.Util.greenCheck() + ` ${written} ${label} file(s) created or updated.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function configureSkills(agents, framework, verbose = true) {
|
|
29
52
|
const result = (0, cli_core_1.copyAISkillsToProject)(agents, framework);
|
|
30
53
|
if (result.found === 0) {
|
|
31
54
|
cli_core_1.Util.warn("No AI skill files found. Make sure packages are installed (npm install) " +
|
|
32
55
|
"and your Ignite UI packages are up-to-date.", "yellow");
|
|
56
|
+
return;
|
|
33
57
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
58
|
+
if (verbose) {
|
|
59
|
+
for (const source of result.sources) {
|
|
60
|
+
if (source.type === "package") {
|
|
61
|
+
cli_core_1.Util.log(`Using skills from ${source.packageName}@${source.packageVersion}`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
cli_core_1.Util.log("Using bundled Ignite UI skills");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
logFileActions(result);
|
|
39
68
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
69
|
+
logResultSummary(result, "AI skill");
|
|
70
|
+
}
|
|
71
|
+
function configureInstructions(agents, framework, verbose = true) {
|
|
72
|
+
const result = (0, cli_core_1.copyAgentInstructionFiles)(agents, framework);
|
|
73
|
+
if (verbose) {
|
|
74
|
+
logFileActions(result);
|
|
43
75
|
}
|
|
76
|
+
logResultSummary(result, "instruction");
|
|
44
77
|
}
|
|
45
78
|
function configure(framework_1) {
|
|
46
|
-
return __awaiter(this, arguments, void 0, function* (framework,
|
|
79
|
+
return __awaiter(this, arguments, void 0, function* (framework, options = {}) {
|
|
80
|
+
const { skills = true, verbose = true } = options;
|
|
81
|
+
let { agents = [], assistants = [] } = options;
|
|
47
82
|
if (framework === "jquery") {
|
|
48
83
|
// currently not supported
|
|
49
84
|
return { agents: [], assistants: [] };
|
|
@@ -65,9 +100,9 @@ function configure(framework_1) {
|
|
|
65
100
|
}
|
|
66
101
|
else {
|
|
67
102
|
if (skills) {
|
|
68
|
-
configureSkills(resolvedAgents, framework);
|
|
103
|
+
configureSkills(resolvedAgents, framework, verbose);
|
|
69
104
|
}
|
|
70
|
-
(
|
|
105
|
+
configureInstructions(resolvedAgents, framework, verbose);
|
|
71
106
|
}
|
|
72
107
|
return { agents: resolvedAgents, assistants: resolvedAssistants };
|
|
73
108
|
});
|
|
@@ -184,7 +219,7 @@ const command = {
|
|
|
184
219
|
if (framework === "jquery") {
|
|
185
220
|
cli_core_1.Util.log("AI Config currently not available for jQuery projects.");
|
|
186
221
|
}
|
|
187
|
-
const result = yield configure(framework, agents, assistants);
|
|
222
|
+
const result = yield configure(framework, { agents, assistants });
|
|
188
223
|
cli_core_1.GoogleAnalytics.post({
|
|
189
224
|
t: "event",
|
|
190
225
|
ec: "$ig ai-config",
|
package/lib/commands/new.js
CHANGED
|
@@ -174,7 +174,10 @@ const command = {
|
|
|
174
174
|
yield cli_core_1.Util.processTemplates(templatePath, path.join(process.cwd(), argv.name), config, projTemplate.delimiters, false);
|
|
175
175
|
}
|
|
176
176
|
process.chdir(argv.name);
|
|
177
|
-
yield (0, ai_config_1.configure)(argv.framework,
|
|
177
|
+
yield (0, ai_config_1.configure)(argv.framework, {
|
|
178
|
+
agents: argv.agents,
|
|
179
|
+
assistants: argv.assistants
|
|
180
|
+
});
|
|
178
181
|
process.chdir("..");
|
|
179
182
|
cli_core_1.Util.log(cli_core_1.Util.greenCheck() + " Project Created");
|
|
180
183
|
if (!argv.skipInstall) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "igniteui-cli",
|
|
3
|
-
"version": "15.2.2
|
|
3
|
+
"version": "15.2.2",
|
|
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": "
|
|
70
|
-
"@igniteui/cli-core": "
|
|
71
|
-
"@igniteui/mcp-server": "
|
|
69
|
+
"@igniteui/angular-templates": "~21.2.1522",
|
|
70
|
+
"@igniteui/cli-core": "~15.2.2",
|
|
71
|
+
"@igniteui/mcp-server": "~15.2.2",
|
|
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>`. **If this script is missing, web components will not register and the app will render blank or broken - verify this is present in every new project.**
|
|
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)**
|
|
@@ -76,9 +76,9 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
76
76
|
| `IgniteUI.Blazor.Lite` | NuGet.org | Open-source / MIT users needing core UI components (forms, layout, navigation, data display, feedback) |
|
|
77
77
|
| `IgniteUI.Blazor.GridLite` | NuGet.org | Open-source / MIT users needing the lightweight `IgbGridLite` data grid |
|
|
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
|
-
| `IgniteUI.Blazor.Trial` | NuGet.org | Evaluation users
|
|
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`.
|
|
@@ -110,11 +110,12 @@ builder.Services.AddIgniteUIBlazor(typeof(IgbCardModule));
|
|
|
110
110
|
<IgbCardActions>
|
|
111
111
|
<IgbButton slot="start" Variant="@ButtonVariant.Flat">Like</IgbButton>
|
|
112
112
|
<IgbButton slot="start" Variant="@ButtonVariant.Flat">Share</IgbButton>
|
|
113
|
+
<IgbButton slot="end" Variant="@ButtonVariant.Contained">Buy Now</IgbButton>
|
|
113
114
|
</IgbCardActions>
|
|
114
115
|
</IgbCard>
|
|
115
116
|
```
|
|
116
117
|
|
|
117
|
-
Sub-components: `IgbCardMedia`, `IgbCardHeader`, `IgbCardContent`, `IgbCardActions`. Slots on `IgbCardHeader`: `thumbnail`, `title`, `subtitle`.
|
|
118
|
+
Sub-components: `IgbCardMedia`, `IgbCardHeader`, `IgbCardContent`, `IgbCardActions`. Slots on `IgbCardHeader`: `thumbnail`, `title`, `subtitle`. Slots on `IgbCardActions`: `start` (left-aligned actions) and `end` (right-aligned actions).
|
|
118
119
|
|
|
119
120
|
---
|
|
120
121
|
|
|
@@ -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
|
|
@@ -94,11 +94,11 @@ Brushes="#FF6B6B #4ECDC4 #45B7D1"
|
|
|
94
94
|
### `AreaFillOpacity` exists on `IgbCategoryChart`
|
|
95
95
|
It does **NOT** exist on `IgbSparkline`. For sparkline fill, use the `Brush` parameter.
|
|
96
96
|
|
|
97
|
-
### `IgbSparkline` has no SplineArea type
|
|
97
|
+
### `IgbSparkline` has no SplineArea type - use `IgbCategoryChart` for smooth area sparklines
|
|
98
98
|
`IgbSparkline` supports only `Line`, `Area`, `Column`, and `WinLoss` display types. `Area` renders as angular polygon fills, not smooth curves. If the design shows smooth mountain-shaped area sparklines, use a small `IgbCategoryChart` with `ChartType="CategoryChartType.SplineArea"`:
|
|
99
99
|
|
|
100
100
|
```razor
|
|
101
|
-
<!-- ❌ Angular fill
|
|
101
|
+
<!-- ❌ Angular fill - no smooth curves available on IgbSparkline -->
|
|
102
102
|
<IgbSparkline DisplayType="SparklineDisplayType.Area" Brush="#5B57E8" ... />
|
|
103
103
|
|
|
104
104
|
<!-- ✅ Smooth spline area sparkline -->
|
|
@@ -121,7 +121,7 @@ Pass them as bound parameters:
|
|
|
121
121
|
<IgbCategoryChart IncludedProperties='@(new string[] { "Month", "Revenue" })' ... />
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
### `InnerExtent` is a chart-level property
|
|
124
|
+
### `InnerExtent` is a chart-level property - never a series-level property
|
|
125
125
|
|
|
126
126
|
`InnerExtent` controls the hole size at the center of a donut/pie chart. It is a property of the **chart** component (`IgbDoughnutChart`, `IgbPieChart`, `IgbDataPieChart`), not of any series child. Placing it on `IgbRingSeries` causes a runtime crash:
|
|
127
127
|
|
|
@@ -140,12 +140,12 @@ Correct usage:
|
|
|
140
140
|
<IgbRingSeries InnerExtent="0.45" ... />
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
### Set `Brushes`, `Outlines`, and visual parameters inline
|
|
143
|
+
### Set `Brushes`, `Outlines`, and visual parameters inline - not via `@ref` in `OnAfterRenderAsync`
|
|
144
144
|
|
|
145
145
|
Setting visual parameters via `@ref` property assignment in `OnAfterRenderAsync` triggers Blazor warning **BL0005** (*Component parameter should not be set outside of its component*). Always pass them as **inline Razor markup attributes** instead.
|
|
146
146
|
|
|
147
147
|
```razor
|
|
148
|
-
<!-- ✅ Inline markup
|
|
148
|
+
<!-- ✅ Inline markup - no BL0005 -->
|
|
149
149
|
<IgbRingSeries Brushes="#CF6E7A #6C74DC #D4A84B" Outlines="#13131F #13131F #13131F" ... />
|
|
150
150
|
|
|
151
151
|
<!-- ❌ BL0005 warning -->
|
|
@@ -160,7 +160,7 @@ Match `ChartType` to the curve shape in the screenshot:
|
|
|
160
160
|
|
|
161
161
|
Do not default to `Line` or `Area` when the screenshot shows smooth curves. The difference is immediately visible and is the most common chart fidelity mistake.
|
|
162
162
|
|
|
163
|
-
### Circular ring with centered percentage
|
|
163
|
+
### Circular ring with centered percentage - choosing the right component
|
|
164
164
|
- **Thick static ring with a centred label and no needle** → `IgbDoughnutChart` + `IgbRingSeries`. Place `InnerExtent` on the chart, not the series. Overlay the label with `position: absolute` inside a `position: relative` wrapper.
|
|
165
165
|
- **Thin animated spinner / loading progress** → `IgbCircularProgress`. Not a data visualisation.
|
|
166
166
|
- **Needle pointer on a scale arc** → `IgbRadialGauge`.
|
|
@@ -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
|
|
@@ -414,6 +430,29 @@ Or toggle a CSS class with variable overrides (see `igniteui-blazor-theming` ski
|
|
|
414
430
|
|
|
415
431
|
## Blazor-specific Gotchas
|
|
416
432
|
|
|
433
|
+
### RZ9986 - Dynamic CSS class on Ignite UI components
|
|
434
|
+
|
|
435
|
+
Blazor raises **RZ9986: Component attributes do not support complex content** when a CSS class string is built inline on an Ignite UI component:
|
|
436
|
+
|
|
437
|
+
```razor
|
|
438
|
+
@* WRONG - RZ9986 build failure *@
|
|
439
|
+
<IgbChip class="chip @(item == _selected ? "chip-active" : "")" />
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Move the class logic into a C# helper method that returns the complete string:
|
|
443
|
+
|
|
444
|
+
```razor
|
|
445
|
+
@* RIGHT - no RZ9986 *@
|
|
446
|
+
<IgbChip class="@ChipClass(item)" />
|
|
447
|
+
|
|
448
|
+
@code {
|
|
449
|
+
private string ChipClass(Item item) =>
|
|
450
|
+
item == _selected ? "chip chip-active" : "chip";
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
This applies to **any** `Igb*` component. The `RZ9986` issue is caused by **complex attribute content** on components (for example, mixing literal text with `@(...)` blocks in the same attribute). To avoid it, make the entire `class` value a single C# expression - either by using a helper method as shown above or by returning the full class string from one inline expression.
|
|
455
|
+
|
|
417
456
|
### Always register modules in `Program.cs`
|
|
418
457
|
Every `Igb*` component needs its `IgbXxxModule` registered via `AddIgniteUIBlazor()`. If a component silently fails to render, the most common cause is a missing module registration:
|
|
419
458
|
```csharp
|
|
@@ -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)**
|
|
@@ -122,7 +122,7 @@ Use this as the lightweight availability check and platform reference for Blazor
|
|
|
122
122
|
|
|
123
123
|
### Step 2 - Generate a Palette
|
|
124
124
|
|
|
125
|
-
> **Note:** For Blazor (CSS-first, no Sass pipeline), use `create_palette` with `output: "css"` to get CSS custom properties directly. Do NOT use `create_theme` for Blazor
|
|
125
|
+
> **Note:** For Blazor (CSS-first, no Sass pipeline), use `create_palette` with `output: "css"` to get CSS custom properties directly. Do NOT use `create_theme` for Blazor - it always outputs Sass which requires a compilation step not present in standard Blazor projects. **Even passing `platform: "blazor"` to `create_theme` will still produce Sass output - the platform parameter does not change the output format.** The `create_palette` param names are `primary`/`secondary`/`surface` (not `primaryColor`/`secondaryColor`/`surfaceColor` - those belong to `create_theme`).
|
|
126
126
|
|
|
127
127
|
```
|
|
128
128
|
Tool: create_palette
|
|
@@ -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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrAccordionTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrAccordionTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTe
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Accordion";
|
|
13
14
|
this.description = "basic IgrAccordion";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrAccordionTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrAvatarTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrAvatarTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTempl
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Avatar";
|
|
13
14
|
this.description = "displays an avatar with customizable shape, size, and initials.";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrAvatarTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrBadgeTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrBadgeTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTempla
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Badge";
|
|
13
14
|
this.description = "displays a badge with customizable variants and styles.";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrBadgeTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrBannerTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrBannerTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTempl
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Banner";
|
|
13
14
|
this.description = "basic IgrBanner";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrBannerTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrButtonTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrButtonTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTempl
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Button";
|
|
13
14
|
this.description = "displays a button with customizable size and content.";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrButtonTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrButtonGroupTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrButtonGroupTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReact
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Button group";
|
|
13
14
|
this.description = "basic IgrButtonGroup";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrButtonGroupTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrCalendarTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrCalendarTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTem
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Calendar";
|
|
13
14
|
this.description = "basic IgrCalendar";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrCalendarTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrCardTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrCardTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplat
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Card";
|
|
13
14
|
this.description = "basic IgrCard";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrCardTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrCheckboxTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrCheckboxTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTem
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Checkbox";
|
|
13
14
|
this.description = "basic IgrCheckbox";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrCheckboxTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrChipTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrChipTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplat
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Chip";
|
|
13
14
|
this.description = "basic IgrChip";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrChipTemplate();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IgniteUIForReactTemplate_1 = require("../../../../../lib/templates/IgniteUIForReactTemplate");
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
4
5
|
class IgrCircularProgressTemplate extends IgniteUIForReactTemplate_1.IgniteUIForReactTemplate {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(__dirname);
|
|
@@ -11,7 +12,7 @@ class IgrCircularProgressTemplate extends IgniteUIForReactTemplate_1.IgniteUIFor
|
|
|
11
12
|
this.projectType = "igr-ts";
|
|
12
13
|
this.name = "Circular Progress";
|
|
13
14
|
this.description = "basic IgrCircularProgress";
|
|
14
|
-
this.packages = [
|
|
15
|
+
this.packages = [constants_1.IGNITEUI_REACT_PACKAGE];
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
module.exports = new IgrCircularProgressTemplate();
|