From 9659f05d3e11d94dc39485f250a09f4332a7fa83 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 16:59:08 +0000 Subject: [PATCH 01/10] feat(igr-ts): add avatar, badge, and button React component templates Add new React component templates for Avatar, Badge, and Button in the igr-ts project type. Each includes component-level and template-level index.ts, a .tsx component file, test file, and style.module.css. Update groups.json with Layouts and Data Entry & Display groups. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/avatar/default/index.ts | 16 ++++++++++++++++ .../cli/templates/react/igr-ts/avatar/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/badge/default/index.ts | 16 ++++++++++++++++ .../cli/templates/react/igr-ts/badge/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/button/default/index.ts | 16 ++++++++++++++++ .../cli/templates/react/igr-ts/button/index.ts | 11 +++++++++++ packages/cli/templates/react/igr-ts/groups.json | 4 +++- 16 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/avatar/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/avatar/index.ts create mode 100644 packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/badge/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/badge/index.ts create mode 100644 packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/button/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/button/index.ts diff --git a/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..9f966c8bf --- /dev/null +++ b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrAvatar } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Avatar

+
+ + + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/avatar/default/index.ts b/packages/cli/templates/react/igr-ts/avatar/default/index.ts new file mode 100644 index 000000000..caa4c29e6 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/avatar/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrAvatarTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Avatar"]; + this.controlGroup = "Layouts"; + this.listInComponentTemplates = true; + this.id = "avatar"; + this.projectType = "igr-ts"; + this.name = "Avatar"; + this.description = "displays an avatar with customizable shape, size, and initials."; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrAvatarTemplate(); diff --git a/packages/cli/templates/react/igr-ts/avatar/index.ts b/packages/cli/templates/react/igr-ts/avatar/index.ts new file mode 100644 index 000000000..6029bc1d7 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/avatar/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrAvatarComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Avatar"; + this.group = "Layouts"; + this.description = `displays an avatar with customizable shape, size, and initials.`; + } +} +module.exports = new IgrAvatarComponent(); diff --git a/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..020719a74 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrBadge } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Badge

+
+ Awaiting test + Critical issue + Verified +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/badge/default/index.ts b/packages/cli/templates/react/igr-ts/badge/default/index.ts new file mode 100644 index 000000000..8270e5abd --- /dev/null +++ b/packages/cli/templates/react/igr-ts/badge/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrBadgeTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Badge"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "badge"; + this.projectType = "igr-ts"; + this.name = "Badge"; + this.description = "displays a badge with customizable variants and styles."; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrBadgeTemplate(); diff --git a/packages/cli/templates/react/igr-ts/badge/index.ts b/packages/cli/templates/react/igr-ts/badge/index.ts new file mode 100644 index 000000000..c3d23cf9c --- /dev/null +++ b/packages/cli/templates/react/igr-ts/badge/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrBadgeComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Badge"; + this.group = "Data Entry & Display"; + this.description = `displays a badge with customizable variants and styles.`; + } +} +module.exports = new IgrBadgeComponent(); diff --git a/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..bbc49403c --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Button

+
+ Large button +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/button/default/index.ts b/packages/cli/templates/react/igr-ts/button/default/index.ts new file mode 100644 index 000000000..a6a6553ee --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrButtonTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Button"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "button"; + this.projectType = "igr-ts"; + this.name = "Button"; + this.description = "displays a button with customizable size and content."; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrButtonTemplate(); diff --git a/packages/cli/templates/react/igr-ts/button/index.ts b/packages/cli/templates/react/igr-ts/button/index.ts new file mode 100644 index 000000000..5c9926a66 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrButtonComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Button"; + this.group = "Data Entry & Display"; + this.description = `displays a button with customizable size and content.`; + } +} +module.exports = new IgrButtonComponent(); diff --git a/packages/cli/templates/react/igr-ts/groups.json b/packages/cli/templates/react/igr-ts/groups.json index f55a8a30b..6743ba612 100644 --- a/packages/cli/templates/react/igr-ts/groups.json +++ b/packages/cli/templates/react/igr-ts/groups.json @@ -1,5 +1,7 @@ { - "Gauges": "scale measure Controls including Linear and Radial Gauge and Bullet Graph.", + "Data Entry & Display": "", + "Layouts": "", "Charts": "high-performance data visualization for category and financial data.", + "Gauges": "scale measure Controls including Linear and Radial Gauge and Bullet Graph.", "Grids": "bind and display data sets with little coding or configuration." } From 7ee84fb8ae838161b7eb55c71e6f4efc7cb078f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:15:18 +0000 Subject: [PATCH 02/10] Add React component templates for button-group, checkbox, and chip Add IgrButtonGroup, IgrCheckbox, and IgrChip component templates to the igr-ts React template collection, each with component registration, template configuration, TSX component, test file, and CSS module styles. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 18 ++++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/button-group/default/index.ts | 16 ++++++++++++++++ .../react/igr-ts/button-group/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/checkbox/default/index.ts | 16 ++++++++++++++++ .../templates/react/igr-ts/checkbox/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/chip/default/index.ts | 16 ++++++++++++++++ .../cli/templates/react/igr-ts/chip/index.ts | 11 +++++++++++ 15 files changed, 193 insertions(+) create mode 100644 packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/button-group/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/button-group/index.ts create mode 100644 packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/checkbox/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/checkbox/index.ts create mode 100644 packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/chip/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/chip/index.ts diff --git a/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..fd32ac8dc --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,18 @@ +import style from './style.module.css'; +import { IgrButtonGroup, IgrToggleButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Button Group

+
+ + Left + Center + Right + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/button-group/default/index.ts b/packages/cli/templates/react/igr-ts/button-group/default/index.ts new file mode 100644 index 000000000..c561ed7da --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button-group/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrButtonGroupTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Button group"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "button-group"; + this.projectType = "igr-ts"; + this.name = "Button group"; + this.description = "basic IgrButtonGroup"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrButtonGroupTemplate(); diff --git a/packages/cli/templates/react/igr-ts/button-group/index.ts b/packages/cli/templates/react/igr-ts/button-group/index.ts new file mode 100644 index 000000000..8222bd170 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/button-group/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrButtonGroupComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Button group"; + this.group = "Data Entry & Display"; + this.description = `displays a group of buttons with toggle functionality.`; + } +} +module.exports = new IgrButtonGroupComponent(); diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..d4d844b40 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrCheckbox } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Checkbox

+
+ Label +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/index.ts b/packages/cli/templates/react/igr-ts/checkbox/default/index.ts new file mode 100644 index 000000000..6e4c84569 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/checkbox/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrCheckboxTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Checkbox"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "checkbox"; + this.projectType = "igr-ts"; + this.name = "Checkbox"; + this.description = "basic IgrCheckbox"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrCheckboxTemplate(); diff --git a/packages/cli/templates/react/igr-ts/checkbox/index.ts b/packages/cli/templates/react/igr-ts/checkbox/index.ts new file mode 100644 index 000000000..bbab581b7 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/checkbox/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrCheckboxComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Checkbox"; + this.group = "Data Entry & Display"; + this.description = `displays a checkbox with customizable label and state.`; + } +} +module.exports = new IgrCheckboxComponent(); diff --git a/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..f545b07e4 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrChip } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Chip

+
+ Chip Content +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/chip/default/index.ts b/packages/cli/templates/react/igr-ts/chip/default/index.ts new file mode 100644 index 000000000..4692f5ec1 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/chip/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrChipTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Chip"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "chip"; + this.projectType = "igr-ts"; + this.name = "Chip"; + this.description = "basic IgrChip"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrChipTemplate(); diff --git a/packages/cli/templates/react/igr-ts/chip/index.ts b/packages/cli/templates/react/igr-ts/chip/index.ts new file mode 100644 index 000000000..b7e591e2d --- /dev/null +++ b/packages/cli/templates/react/igr-ts/chip/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrChipComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Chip"; + this.group = "Data Entry & Display"; + this.description = `displays a chip with selectable and removable options.`; + } +} +module.exports = new IgrChipComponent(); From 85f7a5d64d5a682943a26460e099ada08827e9e7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:21:04 +0000 Subject: [PATCH 03/10] feat: add React component templates for icon, icon-button, input, radio-group Add igr-ts templates for four new components in the Data Entry & Display group: - Icon: displays IgrIcon with home and search icons - Icon Button: displays IgrIconButton with contained variant - Input: displays IgrInput with label, placeholder, and helper text - Radio Group: displays IgrRadioGroup with IgrRadio options Each component includes index.ts, default template config, tsx component, test file, and CSS module following existing template patterns. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 +++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++++ .../react/igr-ts/icon-button/default/index.ts | 16 ++++++++++++++ .../react/igr-ts/icon-button/index.ts | 11 ++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 21 +++++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++++ .../react/igr-ts/icon/default/index.ts | 16 ++++++++++++++ .../cli/templates/react/igr-ts/icon/index.ts | 11 ++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++++ .../react/igr-ts/input/default/index.ts | 16 ++++++++++++++ .../cli/templates/react/igr-ts/input/index.ts | 11 ++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 18 ++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++++ .../react/igr-ts/radio-group/default/index.ts | 16 ++++++++++++++ .../react/igr-ts/radio-group/index.ts | 11 ++++++++++ 20 files changed, 265 insertions(+) create mode 100644 packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/icon-button/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/icon-button/index.ts create mode 100644 packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/icon/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/icon/index.ts create mode 100644 packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/input/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/input/index.ts create mode 100644 packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/radio-group/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/radio-group/index.ts diff --git a/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..ddf35d53f --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrIconButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Icon Button

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/icon-button/default/index.ts b/packages/cli/templates/react/igr-ts/icon-button/default/index.ts new file mode 100644 index 000000000..b14994c78 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon-button/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrIconButtonTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Icon button"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "icon-button"; + this.projectType = "igr-ts"; + this.name = "Icon button"; + this.description = "basic IgrIconButton"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrIconButtonTemplate(); diff --git a/packages/cli/templates/react/igr-ts/icon-button/index.ts b/packages/cli/templates/react/igr-ts/icon-button/index.ts new file mode 100644 index 000000000..98aac3399 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon-button/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrIconButtonComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Icon button"; + this.group = "Data Entry & Display"; + this.description = `displays an icon button.`; + } +} +module.exports = new IgrIconButtonComponent(); diff --git a/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..a86263d4d --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,21 @@ +import style from './style.module.css'; +import { IgrIcon } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Icon

+
+
+ + +
+
+ + +
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/icon/default/index.ts b/packages/cli/templates/react/igr-ts/icon/default/index.ts new file mode 100644 index 000000000..3fe799a2f --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrIconTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Icon"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "icon"; + this.projectType = "igr-ts"; + this.name = "Icon"; + this.description = "basic IgrIcon"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrIconTemplate(); diff --git a/packages/cli/templates/react/igr-ts/icon/index.ts b/packages/cli/templates/react/igr-ts/icon/index.ts new file mode 100644 index 000000000..79e27a892 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/icon/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrIconComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Icon"; + this.group = "Data Entry & Display"; + this.description = `displays an icon.`; + } +} +module.exports = new IgrIconComponent(); diff --git a/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..371075047 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrInput } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Input

+
+ + This is some helper text + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/input/default/index.ts b/packages/cli/templates/react/igr-ts/input/default/index.ts new file mode 100644 index 000000000..8aad8b8d2 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/input/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrInputTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Input"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "input"; + this.projectType = "igr-ts"; + this.name = "Input"; + this.description = "basic IgrInput"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrInputTemplate(); diff --git a/packages/cli/templates/react/igr-ts/input/index.ts b/packages/cli/templates/react/igr-ts/input/index.ts new file mode 100644 index 000000000..c72d0c2ac --- /dev/null +++ b/packages/cli/templates/react/igr-ts/input/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrInputComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Input"; + this.group = "Data Entry & Display"; + this.description = `displays an input field.`; + } +} +module.exports = new IgrInputComponent(); diff --git a/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..f1bd5d8a0 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,18 @@ +import style from './style.module.css'; +import { IgrRadioGroup, IgrRadio } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Radio Group

+
+ + Banana + Orange + Mango + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/radio-group/default/index.ts b/packages/cli/templates/react/igr-ts/radio-group/default/index.ts new file mode 100644 index 000000000..6c53e7e82 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/radio-group/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrRadioGroupTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Radio Group"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "radio-group"; + this.projectType = "igr-ts"; + this.name = "Radio Group"; + this.description = "basic IgrRadioGroup"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrRadioGroupTemplate(); diff --git a/packages/cli/templates/react/igr-ts/radio-group/index.ts b/packages/cli/templates/react/igr-ts/radio-group/index.ts new file mode 100644 index 000000000..dee4124d9 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/radio-group/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrRadioGroupComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Radio Group"; + this.group = "Data Entry & Display"; + this.description = `displays a radio group.`; + } +} +module.exports = new IgrRadioGroupComponent(); From 6107f2a3d070d4180071b669c60fee2d34c76c16 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:23:38 +0000 Subject: [PATCH 04/10] Add React component templates for rating, switch, text-area, and dropdown Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 19 +++++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/dropdown/default/index.ts | 16 ++++++++++++++++ .../templates/react/igr-ts/dropdown/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/rating/default/index.ts | 16 ++++++++++++++++ .../templates/react/igr-ts/rating/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/switch/default/index.ts | 16 ++++++++++++++++ .../templates/react/igr-ts/switch/index.ts | 11 +++++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 +++++++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/text-area/default/index.ts | 16 ++++++++++++++++ .../templates/react/igr-ts/text-area/index.ts | 11 +++++++++++ 20 files changed, 257 insertions(+) create mode 100644 packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/dropdown/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/dropdown/index.ts create mode 100644 packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/rating/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/rating/index.ts create mode 100644 packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/switch/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/switch/index.ts create mode 100644 packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/text-area/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/text-area/index.ts diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..ea5724d8b --- /dev/null +++ b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,19 @@ +import style from './style.module.css'; +import { IgrDropdown, IgrDropdownItem, IgrButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Dropdown

+
+ + Options + Option 1 + Option 2 + Option 3 + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/index.ts b/packages/cli/templates/react/igr-ts/dropdown/default/index.ts new file mode 100644 index 000000000..657f355cf --- /dev/null +++ b/packages/cli/templates/react/igr-ts/dropdown/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrDropdownTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Dropdown"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "dropdown"; + this.projectType = "igr-ts"; + this.name = "Dropdown"; + this.description = "basic IgrDropdown"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrDropdownTemplate(); diff --git a/packages/cli/templates/react/igr-ts/dropdown/index.ts b/packages/cli/templates/react/igr-ts/dropdown/index.ts new file mode 100644 index 000000000..379d12147 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/dropdown/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrDropdownComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Dropdown"; + this.group = "Data Entry & Display"; + this.description = `represents a dropdown component`; + } +} +module.exports = new IgrDropdownComponent(); diff --git a/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..b1a695eda --- /dev/null +++ b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrRating } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Rating

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/rating/default/index.ts b/packages/cli/templates/react/igr-ts/rating/default/index.ts new file mode 100644 index 000000000..114d08909 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/rating/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrRatingTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Rating"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "rating"; + this.projectType = "igr-ts"; + this.name = "Rating"; + this.description = "basic IgrRating"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrRatingTemplate(); diff --git a/packages/cli/templates/react/igr-ts/rating/index.ts b/packages/cli/templates/react/igr-ts/rating/index.ts new file mode 100644 index 000000000..841b5a2d3 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/rating/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrRatingComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Rating"; + this.group = "Data Entry & Display"; + this.description = `represents a rating component`; + } +} +module.exports = new IgrRatingComponent(); diff --git a/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..2c9336c32 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrSwitch } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Switch

+
+ Label +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/switch/default/index.ts b/packages/cli/templates/react/igr-ts/switch/default/index.ts new file mode 100644 index 000000000..0c466e11e --- /dev/null +++ b/packages/cli/templates/react/igr-ts/switch/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrSwitchTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Switch"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "switch"; + this.projectType = "igr-ts"; + this.name = "Switch"; + this.description = "basic IgrSwitch"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrSwitchTemplate(); diff --git a/packages/cli/templates/react/igr-ts/switch/index.ts b/packages/cli/templates/react/igr-ts/switch/index.ts new file mode 100644 index 000000000..eb2f03a41 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/switch/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrSwitchComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Switch"; + this.group = "Data Entry & Display"; + this.description = `represents a switch component`; + } +} +module.exports = new IgrSwitchComponent(); diff --git a/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..a388cce71 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrTextarea } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Text Area

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/text-area/default/index.ts b/packages/cli/templates/react/igr-ts/text-area/default/index.ts new file mode 100644 index 000000000..a427628c5 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/text-area/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrTextAreaTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["Text area"]; + this.controlGroup = "Data Entry & Display"; + this.listInComponentTemplates = true; + this.id = "text-area"; + this.projectType = "igr-ts"; + this.name = "Text area"; + this.description = "basic IgrTextarea"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrTextAreaTemplate(); diff --git a/packages/cli/templates/react/igr-ts/text-area/index.ts b/packages/cli/templates/react/igr-ts/text-area/index.ts new file mode 100644 index 000000000..47f26766b --- /dev/null +++ b/packages/cli/templates/react/igr-ts/text-area/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrTextAreaComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Text area"; + this.group = "Data Entry & Display"; + this.description = `represents a text area component`; + } +} +module.exports = new IgrTextAreaComponent(); From 65cbaea3d54b9f2b91e07a788c5a2ff5992800cd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:29:53 +0000 Subject: [PATCH 05/10] Add React component templates for tabs, calendar, date-picker, list, tree, banner, navbar, form, linear-progress, circular-progress, slider, ripple, and subscription-form Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 27 ++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/accordion/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/accordion/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/banner/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/banner/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/calendar/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/calendar/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 26 +++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/card/default/index.ts | 16 ++++++++++ .../cli/templates/react/igr-ts/card/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../igr-ts/circular-progress/default/index.ts | 16 ++++++++++ .../react/igr-ts/circular-progress/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 32 +++++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../subscription-form/index.ts | 15 +++++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/date-picker/default/index.ts | 16 ++++++++++ .../react/igr-ts/date-picker/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 18 +++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/divider/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/divider/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 17 ++++++++++ .../igr-ts/expansion-panel/default/index.ts | 16 ++++++++++ .../react/igr-ts/expansion-panel/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 24 ++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/form/default/index.ts | 16 ++++++++++ .../cli/templates/react/igr-ts/form/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../igr-ts/linear-progress/default/index.ts | 16 ++++++++++ .../react/igr-ts/linear-progress/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 31 ++++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/list/default/index.ts | 16 ++++++++++ .../cli/templates/react/igr-ts/list/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 16 ++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/navbar/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/navbar/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 17 ++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/ripple/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/ripple/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 14 ++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/slider/default/index.ts | 16 ++++++++++ .../templates/react/igr-ts/slider/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 20 ++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/tabs/default/index.ts | 16 ++++++++++ .../cli/templates/react/igr-ts/tabs/index.ts | 11 +++++++ .../src/app/__path__/__filePrefix__.test.tsx | 13 ++++++++ .../files/src/app/__path__/__filePrefix__.tsx | 29 +++++++++++++++++ .../files/src/app/__path__/style.module.css | 9 ++++++ .../react/igr-ts/tree/default/index.ts | 16 ++++++++++ .../cli/templates/react/igr-ts/tree/index.ts | 11 +++++++ 83 files changed, 1157 insertions(+) create mode 100644 packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/accordion/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/accordion/index.ts create mode 100644 packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/banner/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/banner/index.ts create mode 100644 packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/calendar/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/calendar/index.ts create mode 100644 packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/card/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/card/index.ts create mode 100644 packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/circular-progress/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/circular-progress/index.ts create mode 100644 packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/custom-templates/subscription-form/index.ts create mode 100644 packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/date-picker/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/date-picker/index.ts create mode 100644 packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/divider/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/divider/index.ts create mode 100644 packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/expansion-panel/index.ts create mode 100644 packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/form/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/form/index.ts create mode 100644 packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/linear-progress/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/linear-progress/index.ts create mode 100644 packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/list/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/list/index.ts create mode 100644 packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/navbar/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/navbar/index.ts create mode 100644 packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/ripple/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/ripple/index.ts create mode 100644 packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/slider/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/slider/index.ts create mode 100644 packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/tabs/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/tabs/index.ts create mode 100644 packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.test.tsx create mode 100644 packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx create mode 100644 packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/style.module.css create mode 100644 packages/cli/templates/react/igr-ts/tree/default/index.ts create mode 100644 packages/cli/templates/react/igr-ts/tree/index.ts diff --git a/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..a61ac0835 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,27 @@ +import style from './style.module.css'; +import { IgrAccordion, IgrExpansionPanel } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Accordion

+
+ + +
Ignite UI for React
+

Ignite UI for React is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.

+
+ +
Ignite UI for Angular
+

Ignite UI for Angular is a complete set of Material-based UI Widgets, Components and Sketch UI kits by Infragistics.

+
+ +
Ignite UI for Web Components
+

Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications.

+
+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/accordion/default/index.ts b/packages/cli/templates/react/igr-ts/accordion/default/index.ts new file mode 100644 index 000000000..5e318da87 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/accordion/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrAccordionTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["IgrAccordion"]; + this.controlGroup = "Layouts"; + this.listInComponentTemplates = true; + this.id = "accordion"; + this.projectType = "igr-ts"; + this.name = "Accordion"; + this.description = "basic IgrAccordion"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrAccordionTemplate(); diff --git a/packages/cli/templates/react/igr-ts/accordion/index.ts b/packages/cli/templates/react/igr-ts/accordion/index.ts new file mode 100644 index 000000000..1e260063f --- /dev/null +++ b/packages/cli/templates/react/igr-ts/accordion/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrAccordionComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Accordion"; + this.group = "Layouts"; + this.description = `enables displaying of content in a vertically collapsible fashion.`; + } +} +module.exports = new IgrAccordionComponent(); diff --git a/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..f8c092024 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrBanner } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Banner

+
+ + You are currently not logged in! Please, log into your account first. + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/banner/default/index.ts b/packages/cli/templates/react/igr-ts/banner/default/index.ts new file mode 100644 index 000000000..9318e8330 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/banner/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrBannerTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Banner"]; +this.controlGroup = "Notifications"; +this.listInComponentTemplates = true; +this.id = "banner"; +this.projectType = "igr-ts"; +this.name = "Banner"; +this.description = "basic IgrBanner"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrBannerTemplate(); diff --git a/packages/cli/templates/react/igr-ts/banner/index.ts b/packages/cli/templates/react/igr-ts/banner/index.ts new file mode 100644 index 000000000..1ccb7c13a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/banner/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrBannerComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Banner"; +this.group = "Notifications"; +this.description = `displays banner component`; +} +} +module.exports = new IgrBannerComponent(); diff --git a/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..a3560a1a0 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrCalendar } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Calendar

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/calendar/default/index.ts b/packages/cli/templates/react/igr-ts/calendar/default/index.ts new file mode 100644 index 000000000..bcf4170c7 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/calendar/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrCalendarTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Calendar"]; +this.controlGroup = "Scheduling"; +this.listInComponentTemplates = true; +this.id = "calendar"; +this.projectType = "igr-ts"; +this.name = "Calendar"; +this.description = "basic IgrCalendar"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrCalendarTemplate(); diff --git a/packages/cli/templates/react/igr-ts/calendar/index.ts b/packages/cli/templates/react/igr-ts/calendar/index.ts new file mode 100644 index 000000000..cee8bef01 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/calendar/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrCalendarComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Calendar"; +this.group = "Scheduling"; +this.description = `displays calendar component`; +} +} +module.exports = new IgrCalendarComponent(); diff --git a/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..d414c852f --- /dev/null +++ b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,26 @@ +import style from './style.module.css'; +import { IgrCard, IgrCardHeader, IgrCardContent, IgrCardActions, IgrButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Card

+
+ + +

New York City

+
City Guide
+
+ +

New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that's among the world's major commercial, financial and cultural centers.

+
+ + Like + Learn More + +
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/card/default/index.ts b/packages/cli/templates/react/igr-ts/card/default/index.ts new file mode 100644 index 000000000..2e8ca9aff --- /dev/null +++ b/packages/cli/templates/react/igr-ts/card/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrCardTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["IgrCard"]; + this.controlGroup = "Layouts"; + this.listInComponentTemplates = true; + this.id = "card"; + this.projectType = "igr-ts"; + this.name = "Card"; + this.description = "basic IgrCard"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrCardTemplate(); diff --git a/packages/cli/templates/react/igr-ts/card/index.ts b/packages/cli/templates/react/igr-ts/card/index.ts new file mode 100644 index 000000000..0a868d008 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/card/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrCardComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Card"; + this.group = "Layouts"; + this.description = `displays organized content and actions about a single subject.`; + } +} +module.exports = new IgrCardComponent(); diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..4a79b4a76 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrCircularProgress } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Circular Progress

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts b/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts new file mode 100644 index 000000000..8c70781e0 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrCircularProgressTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["CircularProgress"]; +this.controlGroup = "Data Entry & Display"; +this.listInComponentTemplates = true; +this.id = "circular-progress"; +this.projectType = "igr-ts"; +this.name = "Circular Progress"; +this.description = "basic IgrCircularProgress"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrCircularProgressTemplate(); diff --git a/packages/cli/templates/react/igr-ts/circular-progress/index.ts b/packages/cli/templates/react/igr-ts/circular-progress/index.ts new file mode 100644 index 000000000..0e4a7c5d8 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/circular-progress/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrCircularProgressComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Circular Progress"; +this.group = "Data Entry & Display"; +this.description = `displays circular progress component`; +} +} +module.exports = new IgrCircularProgressComponent(); diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..1571ab67d --- /dev/null +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,32 @@ +import style from './style.module.css'; +import { IgrInput, IgrCheckbox, IgrButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + const handleSubmit = (event: React.FormEvent) => { + event.preventDefault(); + const formData = new FormData(event.currentTarget); + const entries = Array.from(formData.entries()); + const result = entries.map(([key, value]) => `${key}=${value}`).join('; '); + alert(result); + }; + + return ( +
+

Subscription Form

+
+
+
Subscribe
+ + + I accept the license agreement +
+
+ Reset + Submit +
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/index.ts b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/index.ts new file mode 100644 index 000000000..0a9c73063 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/index.ts @@ -0,0 +1,15 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrSubscriptionFormTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.listInComponentTemplates = false; +this.listInCustomTemplates = true; +this.id = "subscription-form"; +this.projectType = "igr-ts"; +this.name = "Subscription Form"; +this.description = "Subscription form with inputs, buttons and a checkbox inside"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrSubscriptionFormTemplate(); diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..c05866ee5 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrDatePicker } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Date Picker

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/index.ts b/packages/cli/templates/react/igr-ts/date-picker/default/index.ts new file mode 100644 index 000000000..cb38aec51 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/date-picker/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrDatePickerTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["DatePicker"]; +this.controlGroup = "Scheduling"; +this.listInComponentTemplates = true; +this.id = "date-picker"; +this.projectType = "igr-ts"; +this.name = "Date Picker"; +this.description = "basic IgrDatePicker"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrDatePickerTemplate(); diff --git a/packages/cli/templates/react/igr-ts/date-picker/index.ts b/packages/cli/templates/react/igr-ts/date-picker/index.ts new file mode 100644 index 000000000..d4616ec23 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/date-picker/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrDatePickerComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Date Picker"; +this.group = "Scheduling"; +this.description = `displays date picker component`; +} +} +module.exports = new IgrDatePickerComponent(); diff --git a/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..34bb228f9 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,18 @@ +import style from './style.module.css'; +import { IgrDivider } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Divider

+
+
+

Content above

+ +

Content below

+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/divider/default/index.ts b/packages/cli/templates/react/igr-ts/divider/default/index.ts new file mode 100644 index 000000000..9966f5723 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/divider/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrDividerTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["IgrDivider"]; + this.controlGroup = "Layouts"; + this.listInComponentTemplates = true; + this.id = "divider"; + this.projectType = "igr-ts"; + this.name = "Divider"; + this.description = "basic IgrDivider"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrDividerTemplate(); diff --git a/packages/cli/templates/react/igr-ts/divider/index.ts b/packages/cli/templates/react/igr-ts/divider/index.ts new file mode 100644 index 000000000..057233bdd --- /dev/null +++ b/packages/cli/templates/react/igr-ts/divider/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrDividerComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Divider"; + this.group = "Layouts"; + this.description = `provides a thin, lightweight separator.`; + } +} +module.exports = new IgrDividerComponent(); diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..df21f848a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,17 @@ +import style from './style.module.css'; +import { IgrExpansionPanel } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Expansion Panel

+
+ +
Expansion Panel Title
+

This is the content of the expansion panel. Click the header to expand or collapse this section.

+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts b/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts new file mode 100644 index 000000000..4e0e0a44d --- /dev/null +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrExpansionPanelTemplate extends IgniteUIForReactTemplate { + constructor() { + super(__dirname); + this.components = ["IgrExpansionPanel"]; + this.controlGroup = "Layouts"; + this.listInComponentTemplates = true; + this.id = "expansion-panel"; + this.projectType = "igr-ts"; + this.name = "Expansion Panel"; + this.description = "basic IgrExpansionPanel"; + this.packages = ["igniteui-react@~19.5.2"]; + } +} +module.exports = new IgrExpansionPanelTemplate(); diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/index.ts b/packages/cli/templates/react/igr-ts/expansion-panel/index.ts new file mode 100644 index 000000000..fdc2a1404 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/expansion-panel/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrExpansionPanelComponent extends BaseComponent { + constructor() { + super(__dirname); + this.name = "Expansion Panel"; + this.group = "Layouts"; + this.description = `provides a collapsible content section with a header.`; + } +} +module.exports = new IgrExpansionPanelComponent(); diff --git a/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..f06435d48 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,24 @@ +import style from './style.module.css'; +import { IgrInput, IgrRadioGroup, IgrRadio } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Form

+
+
+ + +
+ + + Male + Female + +
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/form/default/index.ts b/packages/cli/templates/react/igr-ts/form/default/index.ts new file mode 100644 index 000000000..3f6b31d56 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/form/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrFormTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Form"]; +this.controlGroup = "Data Entry & Display"; +this.listInComponentTemplates = true; +this.id = "form"; +this.projectType = "igr-ts"; +this.name = "Form"; +this.description = "basic IgrForm"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrFormTemplate(); diff --git a/packages/cli/templates/react/igr-ts/form/index.ts b/packages/cli/templates/react/igr-ts/form/index.ts new file mode 100644 index 000000000..bbd2c7110 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/form/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrFormComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Form"; +this.group = "Data Entry & Display"; +this.description = `displays form component`; +} +} +module.exports = new IgrFormComponent(); diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..ac72e3406 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrLinearProgress } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Linear Progress

+
+
+ +
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts b/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts new file mode 100644 index 000000000..d5961ea21 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrLinearProgressTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["LinearProgress"]; +this.controlGroup = "Data Entry & Display"; +this.listInComponentTemplates = true; +this.id = "linear-progress"; +this.projectType = "igr-ts"; +this.name = "Linear Progress"; +this.description = "basic IgrLinearProgress"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrLinearProgressTemplate(); diff --git a/packages/cli/templates/react/igr-ts/linear-progress/index.ts b/packages/cli/templates/react/igr-ts/linear-progress/index.ts new file mode 100644 index 000000000..4250c82a8 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/linear-progress/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrLinearProgressComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Linear Progress"; +this.group = "Data Entry & Display"; +this.description = `displays linear progress component`; +} +} +module.exports = new IgrLinearProgressComponent(); diff --git a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..33cfcaf69 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,31 @@ +import style from './style.module.css'; +import { IgrList, IgrListItem, IgrListHeader, IgrAvatar, IgrButton } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

List

+
+ + Job Positions + + +

Abraham Lee

+ Software Developer +
+ + +

John Smith

+ Team Lead +
+ + +

Jonathan Deberkow

+ UX Designer +
+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/list/default/index.ts b/packages/cli/templates/react/igr-ts/list/default/index.ts new file mode 100644 index 000000000..f14ae344c --- /dev/null +++ b/packages/cli/templates/react/igr-ts/list/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrListTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["List"]; +this.controlGroup = "Grids & Lists"; +this.listInComponentTemplates = true; +this.id = "list"; +this.projectType = "igr-ts"; +this.name = "List"; +this.description = "basic IgrList"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrListTemplate(); diff --git a/packages/cli/templates/react/igr-ts/list/index.ts b/packages/cli/templates/react/igr-ts/list/index.ts new file mode 100644 index 000000000..53961a74f --- /dev/null +++ b/packages/cli/templates/react/igr-ts/list/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrListComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "List"; +this.group = "Grids & Lists"; +this.description = `displays list component`; +} +} +module.exports = new IgrListComponent(); diff --git a/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..fc90e0a28 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,16 @@ +import style from './style.module.css'; +import { IgrNavbar } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Navbar

+
+ +

Home

+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/navbar/default/index.ts b/packages/cli/templates/react/igr-ts/navbar/default/index.ts new file mode 100644 index 000000000..944354fd7 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/navbar/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrNavbarTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Navbar"]; +this.controlGroup = "Menus"; +this.listInComponentTemplates = true; +this.id = "navbar"; +this.projectType = "igr-ts"; +this.name = "Navbar"; +this.description = "basic IgrNavbar"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrNavbarTemplate(); diff --git a/packages/cli/templates/react/igr-ts/navbar/index.ts b/packages/cli/templates/react/igr-ts/navbar/index.ts new file mode 100644 index 000000000..112b8c078 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/navbar/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrNavbarComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Navbar"; +this.group = "Menus"; +this.description = `displays navbar component`; +} +} +module.exports = new IgrNavbarComponent(); diff --git a/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..5cb65f865 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,17 @@ +import style from './style.module.css'; +import { IgrButton, IgrRipple } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Ripple

+
+ + + Button with ripple + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/ripple/default/index.ts b/packages/cli/templates/react/igr-ts/ripple/default/index.ts new file mode 100644 index 000000000..8afdb6fe4 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/ripple/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrRippleTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Ripple"]; +this.controlGroup = "Interactions"; +this.listInComponentTemplates = true; +this.id = "ripple"; +this.projectType = "igr-ts"; +this.name = "Ripple"; +this.description = "basic IgrRipple"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrRippleTemplate(); diff --git a/packages/cli/templates/react/igr-ts/ripple/index.ts b/packages/cli/templates/react/igr-ts/ripple/index.ts new file mode 100644 index 000000000..217781d00 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/ripple/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrRippleComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Ripple"; +this.group = "Interactions"; +this.description = `displays ripple component`; +} +} +module.exports = new IgrRippleComponent(); diff --git a/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..47cf24ba4 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,14 @@ +import style from './style.module.css'; +import { IgrSlider } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Slider

+
+ +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/slider/default/index.ts b/packages/cli/templates/react/igr-ts/slider/default/index.ts new file mode 100644 index 000000000..6dd4fca5c --- /dev/null +++ b/packages/cli/templates/react/igr-ts/slider/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrSliderTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Slider"]; +this.controlGroup = "Interactions"; +this.listInComponentTemplates = true; +this.id = "slider"; +this.projectType = "igr-ts"; +this.name = "Slider"; +this.description = "basic IgrSlider"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrSliderTemplate(); diff --git a/packages/cli/templates/react/igr-ts/slider/index.ts b/packages/cli/templates/react/igr-ts/slider/index.ts new file mode 100644 index 000000000..3843da395 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/slider/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrSliderComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Slider"; +this.group = "Interactions"; +this.description = `displays slider component`; +} +} +module.exports = new IgrSliderComponent(); diff --git a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..24b92d986 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,20 @@ +import style from './style.module.css'; +import { IgrTabs, IgrTab, IgrTabPanel } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Tabs

+
+ + Albums + Favourites + Info +

Sgt. Peppers Lonely Hearts Club Band

The Dark Side of the Moon

Thriller

+

The Dark Side of the Moon

Led Zeppelin IV

+
+
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/tabs/default/index.ts b/packages/cli/templates/react/igr-ts/tabs/default/index.ts new file mode 100644 index 000000000..a06e811cd --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tabs/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrTabsTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Tabs"]; +this.controlGroup = "Layouts"; +this.listInComponentTemplates = true; +this.id = "tabs"; +this.projectType = "igr-ts"; +this.name = "Tabs"; +this.description = "basic IgrTabs"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrTabsTemplate(); diff --git a/packages/cli/templates/react/igr-ts/tabs/index.ts b/packages/cli/templates/react/igr-ts/tabs/index.ts new file mode 100644 index 000000000..a92040987 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tabs/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrTabsComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Tabs"; +this.group = "Layouts"; +this.description = `displays tabs component`; +} +} +module.exports = new IgrTabsComponent(); diff --git a/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.test.tsx b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.test.tsx new file mode 100644 index 000000000..854681a3a --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.test.tsx @@ -0,0 +1,13 @@ +import { beforeAll, expect, test } from 'vitest'; +import { render } from '@testing-library/react'; +import $(ClassName) from './$(path)'; +import { setupTestMocks } from '../../setupTests'; + +beforeAll(() => { + setupTestMocks(); +}) + +test('renders $(ClassName) component', () => { + const wrapper = render(<$(ClassName) />); + expect(wrapper).toBeTruthy(); +}); diff --git a/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx new file mode 100644 index 000000000..6aeab81e0 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx @@ -0,0 +1,29 @@ +import style from './style.module.css'; +import { IgrTree, IgrTreeItem } from 'igniteui-react'; +import 'igniteui-react/themes/light/bootstrap.css'; + +export default function $(ClassName)() { + return ( +
+

Tree

+
+ + + + + + + + + + + + + + + + +
+
+ ); +} diff --git a/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/tree/default/index.ts b/packages/cli/templates/react/igr-ts/tree/default/index.ts new file mode 100644 index 000000000..23e567c27 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tree/default/index.ts @@ -0,0 +1,16 @@ +import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; + +class IgrTreeTemplate extends IgniteUIForReactTemplate { +constructor() { +super(__dirname); +this.components = ["Tree"]; +this.controlGroup = "Grids & Lists"; +this.listInComponentTemplates = true; +this.id = "tree"; +this.projectType = "igr-ts"; +this.name = "Tree"; +this.description = "basic IgrTree"; +this.packages = ["igniteui-react@~19.5.2"]; +} +} +module.exports = new IgrTreeTemplate(); diff --git a/packages/cli/templates/react/igr-ts/tree/index.ts b/packages/cli/templates/react/igr-ts/tree/index.ts new file mode 100644 index 000000000..c7d74fedd --- /dev/null +++ b/packages/cli/templates/react/igr-ts/tree/index.ts @@ -0,0 +1,11 @@ +import { BaseComponent } from "@igniteui/cli-core"; + +class IgrTreeComponent extends BaseComponent { +constructor() { +super(__dirname); +this.name = "Tree"; +this.group = "Grids & Lists"; +this.description = `displays tree component`; +} +} +module.exports = new IgrTreeComponent(); From 61d2f691bebbc604e0721ac181cf890e69cf9286 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 30 Mar 2026 06:33:13 +0000 Subject: [PATCH 06/10] Add descriptions to all groups in React igr-ts groups.json Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/0942dde4-fc35-4382-893c-748eb6c4a830 Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- packages/cli/templates/react/igr-ts/groups.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/cli/templates/react/igr-ts/groups.json b/packages/cli/templates/react/igr-ts/groups.json index 6743ba612..8a73cda4c 100644 --- a/packages/cli/templates/react/igr-ts/groups.json +++ b/packages/cli/templates/react/igr-ts/groups.json @@ -1,7 +1,12 @@ { - "Data Entry & Display": "", - "Layouts": "", + "Data Entry & Display": "user input and display controls including buttons, inputs, checkboxes and more.", + "Interactions": "interactive UI components including sliders and visual effects.", + "Menus": "navigation controls including navbar.", + "Grids & Lists": "components for displaying collections of data in list and tree views.", + "Scheduling": "date and time selection controls including calendar and date picker.", + "Layouts": "layout and structure controls including accordion, cards, tabs and panels.", "Charts": "high-performance data visualization for category and financial data.", "Gauges": "scale measure Controls including Linear and Radial Gauge and Bullet Graph.", - "Grids": "bind and display data sets with little coding or configuration." + "Grids": "bind and display data sets with little coding or configuration.", + "Notifications": "informational components including banners and alerts." } From 87759d43fc035d520d0356da9111c3bbceb50833 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 30 Mar 2026 14:02:23 +0000 Subject: [PATCH 07/10] fix: use igniteui-webcomponents/themes instead of igniteui-react/themes for all React component templates Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/7d42465f-2e0a-4fcc-b339-d251517bf700 Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../accordion/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../avatar/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../badge/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../banner/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../button/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../calendar/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../card/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../checkbox/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../chip/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../subscription-form/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../divider/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../dropdown/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../form/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../icon/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../input/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../list/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../navbar/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../rating/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../ripple/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../slider/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../switch/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../tabs/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../text-area/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- .../tree/default/files/src/app/__path__/__filePrefix__.tsx | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx index a61ac0835..355e8f05b 100644 --- a/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/accordion/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrAccordion, IgrExpansionPanel } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx index 9f966c8bf..577e1e9a5 100644 --- a/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/avatar/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrAvatar } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx index 020719a74..32d8f9ccb 100644 --- a/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/badge/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrBadge } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx index f8c092024..c8b0f7c4e 100644 --- a/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/banner/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrBanner } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx index fd32ac8dc..123cd1ade 100644 --- a/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/button-group/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrButtonGroup, IgrToggleButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx index bbc49403c..4503ef58c 100644 --- a/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/button/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx index a3560a1a0..b9138d355 100644 --- a/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/calendar/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrCalendar } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx index d414c852f..61d0f4dd4 100644 --- a/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/card/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrCard, IgrCardHeader, IgrCardContent, IgrCardActions, IgrButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx index d4d844b40..efd15486a 100644 --- a/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/checkbox/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrCheckbox } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx index f545b07e4..9aaf5069c 100644 --- a/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/chip/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrChip } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx index 4a79b4a76..d7981ef56 100644 --- a/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrCircularProgress } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx index 1571ab67d..a0f55b77c 100644 --- a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrInput, IgrCheckbox, IgrButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { const handleSubmit = (event: React.FormEvent) => { diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx index c05866ee5..d55d2ed7f 100644 --- a/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/date-picker/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrDatePicker } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx index 34bb228f9..4e1e2876a 100644 --- a/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/divider/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrDivider } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx index ea5724d8b..082581368 100644 --- a/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/dropdown/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrDropdown, IgrDropdownItem, IgrButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx index df21f848a..6195b6bcb 100644 --- a/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrExpansionPanel } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx index f06435d48..8388a4773 100644 --- a/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/form/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrInput, IgrRadioGroup, IgrRadio } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx index ddf35d53f..d3049f52f 100644 --- a/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/icon-button/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrIconButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx index a86263d4d..4d7e04354 100644 --- a/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/icon/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrIcon } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx index 371075047..592f40622 100644 --- a/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/input/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrInput } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx index ac72e3406..1aa007661 100644 --- a/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrLinearProgress } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx index 33cfcaf69..d9ab008cc 100644 --- a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrList, IgrListItem, IgrListHeader, IgrAvatar, IgrButton } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx index fc90e0a28..119d668c2 100644 --- a/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/navbar/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrNavbar } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx index f1bd5d8a0..23fe6182a 100644 --- a/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/radio-group/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrRadioGroup, IgrRadio } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx index b1a695eda..a07a1f6de 100644 --- a/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/rating/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrRating } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx index 5cb65f865..c18c3afc8 100644 --- a/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/ripple/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrButton, IgrRipple } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx index 47cf24ba4..b0ef7bc75 100644 --- a/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/slider/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrSlider } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx index 2c9336c32..95f768bdf 100644 --- a/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/switch/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrSwitch } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx index 24b92d986..e8d6d7dcc 100644 --- a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrTabs, IgrTab, IgrTabPanel } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx index a388cce71..3b7fb68de 100644 --- a/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/text-area/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrTextarea } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( diff --git a/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx index 6aeab81e0..0fb7dc736 100644 --- a/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/tree/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,6 +1,6 @@ import style from './style.module.css'; import { IgrTree, IgrTreeItem } from 'igniteui-react'; -import 'igniteui-react/themes/light/bootstrap.css'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { return ( From 3aaed12a365ae13656bf1d3f4bde46a85b257937 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 31 Mar 2026 14:11:19 +0000 Subject: [PATCH 08/10] fix: update tabs template to use correct React API (IgrTab with label prop, no IgrTabPanel) Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/f6fbe834-0e2e-424b-b785-98268e09e176 Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../files/src/app/__path__/__filePrefix__.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx index e8d6d7dcc..26841969d 100644 --- a/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/tabs/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,5 +1,5 @@ import style from './style.module.css'; -import { IgrTabs, IgrTab, IgrTabPanel } from 'igniteui-react'; +import { IgrTabs, IgrTab } from 'igniteui-react'; import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { @@ -8,11 +8,18 @@ export default function $(ClassName)() {

Tabs

- Albums - Favourites - Info -

Sgt. Peppers Lonely Hearts Club Band

The Dark Side of the Moon

Thriller

-

The Dark Side of the Moon

Led Zeppelin IV

+ +

Sgt. Peppers Lonely Hearts Club Band

+

The Dark Side of the Moon

+

Thriller

+
+ +

The Dark Side of the Moon

+

Led Zeppelin IV

+
+ +

No content available

+
From 4d3097c2e91b37c5ff96324d63f64a35212b1cce Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 31 Mar 2026 14:30:32 +0000 Subject: [PATCH 09/10] fix: address all unresolved review comments on React igr-ts templates Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/2470cb9f-f7c6-4d85-8e9b-f5028c773415 Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com> --- .../templates/react/igr-ts/accordion/default/index.ts | 2 +- .../cli/templates/react/igr-ts/card/default/index.ts | 2 +- .../react/igr-ts/circular-progress/default/index.ts | 2 +- .../files/src/app/__path__/__filePrefix__.tsx | 5 +++-- .../templates/react/igr-ts/date-picker/default/index.ts | 2 +- .../cli/templates/react/igr-ts/divider/default/index.ts | 4 ++-- packages/cli/templates/react/igr-ts/divider/index.ts | 2 +- .../default/files/src/app/__path__/style.module.css | 9 +++++++++ .../react/igr-ts/expansion-panel/default/index.ts | 2 +- .../react/igr-ts/linear-progress/default/index.ts | 2 +- .../default/files/src/app/__path__/__filePrefix__.tsx | 2 +- 11 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/style.module.css diff --git a/packages/cli/templates/react/igr-ts/accordion/default/index.ts b/packages/cli/templates/react/igr-ts/accordion/default/index.ts index 5e318da87..d87e3ac0c 100644 --- a/packages/cli/templates/react/igr-ts/accordion/default/index.ts +++ b/packages/cli/templates/react/igr-ts/accordion/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrAccordionTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); - this.components = ["IgrAccordion"]; + this.components = ["Accordion"]; this.controlGroup = "Layouts"; this.listInComponentTemplates = true; this.id = "accordion"; diff --git a/packages/cli/templates/react/igr-ts/card/default/index.ts b/packages/cli/templates/react/igr-ts/card/default/index.ts index 2e8ca9aff..452f29ada 100644 --- a/packages/cli/templates/react/igr-ts/card/default/index.ts +++ b/packages/cli/templates/react/igr-ts/card/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrCardTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); - this.components = ["IgrCard"]; + this.components = ["Card"]; this.controlGroup = "Layouts"; this.listInComponentTemplates = true; this.id = "card"; diff --git a/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts b/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts index 8c70781e0..50d105fc0 100644 --- a/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts +++ b/packages/cli/templates/react/igr-ts/circular-progress/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrCircularProgressTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); -this.components = ["CircularProgress"]; +this.components = ["Circular Progress"]; this.controlGroup = "Data Entry & Display"; this.listInComponentTemplates = true; this.id = "circular-progress"; diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx index a0f55b77c..67e833885 100644 --- a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx @@ -3,9 +3,10 @@ import { IgrInput, IgrCheckbox, IgrButton } from 'igniteui-react'; import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { - const handleSubmit = (event: React.FormEvent) => { + const handleSubmit = (event: SubmitEvent) => { event.preventDefault(); - const formData = new FormData(event.currentTarget); + const form = event.target as HTMLFormElement; + const formData = new FormData(form); const entries = Array.from(formData.entries()); const result = entries.map(([key, value]) => `${key}=${value}`).join('; '); alert(result); diff --git a/packages/cli/templates/react/igr-ts/date-picker/default/index.ts b/packages/cli/templates/react/igr-ts/date-picker/default/index.ts index cb38aec51..cbe37f48a 100644 --- a/packages/cli/templates/react/igr-ts/date-picker/default/index.ts +++ b/packages/cli/templates/react/igr-ts/date-picker/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrDatePickerTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); -this.components = ["DatePicker"]; +this.components = ["Date Picker"]; this.controlGroup = "Scheduling"; this.listInComponentTemplates = true; this.id = "date-picker"; diff --git a/packages/cli/templates/react/igr-ts/divider/default/index.ts b/packages/cli/templates/react/igr-ts/divider/default/index.ts index 9966f5723..0022a41e0 100644 --- a/packages/cli/templates/react/igr-ts/divider/default/index.ts +++ b/packages/cli/templates/react/igr-ts/divider/default/index.ts @@ -3,8 +3,8 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrDividerTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); - this.components = ["IgrDivider"]; - this.controlGroup = "Layouts"; + this.components = ["Divider"]; + this.controlGroup = "Data Entry & Display"; this.listInComponentTemplates = true; this.id = "divider"; this.projectType = "igr-ts"; diff --git a/packages/cli/templates/react/igr-ts/divider/index.ts b/packages/cli/templates/react/igr-ts/divider/index.ts index 057233bdd..c7c155cac 100644 --- a/packages/cli/templates/react/igr-ts/divider/index.ts +++ b/packages/cli/templates/react/igr-ts/divider/index.ts @@ -4,7 +4,7 @@ class IgrDividerComponent extends BaseComponent { constructor() { super(__dirname); this.name = "Divider"; - this.group = "Layouts"; + this.group = "Data Entry & Display"; this.description = `provides a thin, lightweight separator.`; } } diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/style.module.css b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/style.module.css new file mode 100644 index 000000000..1bcd0e328 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/files/src/app/__path__/style.module.css @@ -0,0 +1,9 @@ +:local(.container) { + padding-top: 24px; + display: flex; + flex-flow: row; + justify-content: space-around; +} +:local(.title) { + color: rgb(0, 153, 255); +} diff --git a/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts b/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts index 4e0e0a44d..126aedc30 100644 --- a/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts +++ b/packages/cli/templates/react/igr-ts/expansion-panel/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrExpansionPanelTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); - this.components = ["IgrExpansionPanel"]; + this.components = ["Expansion Panel"]; this.controlGroup = "Layouts"; this.listInComponentTemplates = true; this.id = "expansion-panel"; diff --git a/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts b/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts index d5961ea21..4b0982d33 100644 --- a/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts +++ b/packages/cli/templates/react/igr-ts/linear-progress/default/index.ts @@ -3,7 +3,7 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIF class IgrLinearProgressTemplate extends IgniteUIForReactTemplate { constructor() { super(__dirname); -this.components = ["LinearProgress"]; +this.components = ["Linear Progress"]; this.controlGroup = "Data Entry & Display"; this.listInComponentTemplates = true; this.id = "linear-progress"; diff --git a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx index d9ab008cc..69b37c934 100644 --- a/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/list/default/files/src/app/__path__/__filePrefix__.tsx @@ -1,5 +1,5 @@ import style from './style.module.css'; -import { IgrList, IgrListItem, IgrListHeader, IgrAvatar, IgrButton } from 'igniteui-react'; +import { IgrList, IgrListItem, IgrListHeader, IgrAvatar } from 'igniteui-react'; import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { From 33a06306d3258eb9766c848e5235133bfbb4e902 Mon Sep 17 00:00:00 2001 From: Damyan Petev Date: Tue, 31 Mar 2026 17:46:28 +0300 Subject: [PATCH 10/10] Apply suggestion from @damyanpetev --- .../subscription-form/files/src/app/__path__/__filePrefix__.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx index 67e833885..45ccaf756 100644 --- a/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/custom-templates/subscription-form/files/src/app/__path__/__filePrefix__.tsx @@ -3,7 +3,7 @@ import { IgrInput, IgrCheckbox, IgrButton } from 'igniteui-react'; import 'igniteui-webcomponents/themes/light/bootstrap.css'; export default function $(ClassName)() { - const handleSubmit = (event: SubmitEvent) => { + const handleSubmit = (event: React.SubmitEvent) => { event.preventDefault(); const form = event.target as HTMLFormElement; const formData = new FormData(form);