diff --git a/CHANGELOG.md b/CHANGELOG.md index 33e4532dc..12f917b0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased ## What's Changed +* **Template package updates:** updated scaffolded package references for Angular, React, and Web Components templates — `igniteui-angular` to `~21.2.5`, `igniteui-react` / `igniteui-react-grids` / `igniteui-react-dockmanager` to `~19.7.0`, `igniteui-webcomponents` to `~7.2.0`, and `igniteui-webcomponents-grids` to `~7.1.0`. * **MCP — API reference links in docs:** Infragistics API documentation links embedded in the docs served by the MCP server are now rewritten to deterministic `get_api_reference` tool references (e.g. `mcp:get_api_reference?platform=webcomponents&component=IgcCheckboxComponent&member=checked`). AI assistants reading the docs resolve API links through the in-tool API lookup instead of fetching external HTML pages. * **MCP `get_api_reference` — member-level lookup:** The `get_api_reference` tool now accepts an optional `member` parameter to return a single property, method, or event entry instead of the full component (for example `member="checked"`). It takes precedence over `section`, tolerates `Component#member` fragment-style references, reports the canonical member-name casing in the response, and returns a clear error when the requested member does not exist on the component. 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 d87e3ac0c..35b0eb1e4 100644 --- a/packages/cli/templates/react/igr-ts/accordion/default/index.ts +++ b/packages/cli/templates/react/igr-ts/accordion/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrAccordionTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrAccordionTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Accordion"; this.description = "basic IgrAccordion"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrAccordionTemplate(); diff --git a/packages/cli/templates/react/igr-ts/avatar/default/index.ts b/packages/cli/templates/react/igr-ts/avatar/default/index.ts index caa4c29e6..2630c10de 100644 --- a/packages/cli/templates/react/igr-ts/avatar/default/index.ts +++ b/packages/cli/templates/react/igr-ts/avatar/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrAvatarTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrAvatarTemplate extends IgniteUIForReactTemplate { 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"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrAvatarTemplate(); diff --git a/packages/cli/templates/react/igr-ts/badge/default/index.ts b/packages/cli/templates/react/igr-ts/badge/default/index.ts index 8270e5abd..45ac83a24 100644 --- a/packages/cli/templates/react/igr-ts/badge/default/index.ts +++ b/packages/cli/templates/react/igr-ts/badge/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrBadgeTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrBadgeTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Badge"; this.description = "displays a badge with customizable variants and styles."; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrBadgeTemplate(); diff --git a/packages/cli/templates/react/igr-ts/banner/default/index.ts b/packages/cli/templates/react/igr-ts/banner/default/index.ts index 9318e8330..c0087f679 100644 --- a/packages/cli/templates/react/igr-ts/banner/default/index.ts +++ b/packages/cli/templates/react/igr-ts/banner/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrBannerTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "banner"; this.projectType = "igr-ts"; this.name = "Banner"; this.description = "basic IgrBanner"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrBannerTemplate(); 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 index c561ed7da..ea317e7a7 100644 --- a/packages/cli/templates/react/igr-ts/button-group/default/index.ts +++ b/packages/cli/templates/react/igr-ts/button-group/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrButtonGroupTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrButtonGroupTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Button group"; this.description = "basic IgrButtonGroup"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrButtonGroupTemplate(); diff --git a/packages/cli/templates/react/igr-ts/button/default/index.ts b/packages/cli/templates/react/igr-ts/button/default/index.ts index a6a6553ee..4d537ecb6 100644 --- a/packages/cli/templates/react/igr-ts/button/default/index.ts +++ b/packages/cli/templates/react/igr-ts/button/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrButtonTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrButtonTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Button"; this.description = "displays a button with customizable size and content."; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrButtonTemplate(); diff --git a/packages/cli/templates/react/igr-ts/calendar/default/index.ts b/packages/cli/templates/react/igr-ts/calendar/default/index.ts index bcf4170c7..8cae12d71 100644 --- a/packages/cli/templates/react/igr-ts/calendar/default/index.ts +++ b/packages/cli/templates/react/igr-ts/calendar/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrCalendarTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "calendar"; this.projectType = "igr-ts"; this.name = "Calendar"; this.description = "basic IgrCalendar"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrCalendarTemplate(); 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 452f29ada..1d559cbde 100644 --- a/packages/cli/templates/react/igr-ts/card/default/index.ts +++ b/packages/cli/templates/react/igr-ts/card/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrCardTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrCardTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Card"; this.description = "basic IgrCard"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrCardTemplate(); diff --git a/packages/cli/templates/react/igr-ts/checkbox/default/index.ts b/packages/cli/templates/react/igr-ts/checkbox/default/index.ts index 6e4c84569..4256d07df 100644 --- a/packages/cli/templates/react/igr-ts/checkbox/default/index.ts +++ b/packages/cli/templates/react/igr-ts/checkbox/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrCheckboxTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrCheckboxTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Checkbox"; this.description = "basic IgrCheckbox"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrCheckboxTemplate(); diff --git a/packages/cli/templates/react/igr-ts/chip/default/index.ts b/packages/cli/templates/react/igr-ts/chip/default/index.ts index 4692f5ec1..c82898f77 100644 --- a/packages/cli/templates/react/igr-ts/chip/default/index.ts +++ b/packages/cli/templates/react/igr-ts/chip/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrChipTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrChipTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Chip"; this.description = "basic IgrChip"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrChipTemplate(); 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 50d105fc0..319dd5a63 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 @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrCircularProgressTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "circular-progress"; this.projectType = "igr-ts"; this.name = "Circular Progress"; this.description = "basic IgrCircularProgress"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrCircularProgressTemplate(); diff --git a/packages/cli/templates/react/igr-ts/constants.ts b/packages/cli/templates/react/igr-ts/constants.ts new file mode 100644 index 000000000..f747155e1 --- /dev/null +++ b/packages/cli/templates/react/igr-ts/constants.ts @@ -0,0 +1,2 @@ +export const IGNITEUI_REACT_PACKAGE = "igniteui-react@~19.7.0"; +export const IGNITEUI_REACT_GRIDS_PACKAGE = "igniteui-react-grids@~19.7.0"; 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 index 0a9c73063..75816d2ab 100644 --- 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 @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrSubscriptionFormTemplate extends IgniteUIForReactTemplate { constructor() { @@ -9,7 +10,7 @@ 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"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrSubscriptionFormTemplate(); 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 cbe37f48a..93b70882b 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 @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrDatePickerTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "date-picker"; this.projectType = "igr-ts"; this.name = "Date Picker"; this.description = "basic IgrDatePicker"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrDatePickerTemplate(); 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 0022a41e0..9fa5383b7 100644 --- a/packages/cli/templates/react/igr-ts/divider/default/index.ts +++ b/packages/cli/templates/react/igr-ts/divider/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrDividerTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrDividerTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Divider"; this.description = "basic IgrDivider"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrDividerTemplate(); diff --git a/packages/cli/templates/react/igr-ts/dropdown/default/index.ts b/packages/cli/templates/react/igr-ts/dropdown/default/index.ts index 657f355cf..221010195 100644 --- a/packages/cli/templates/react/igr-ts/dropdown/default/index.ts +++ b/packages/cli/templates/react/igr-ts/dropdown/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrDropdownTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrDropdownTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Dropdown"; this.description = "basic IgrDropdown"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrDropdownTemplate(); 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 126aedc30..904176288 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 @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrExpansionPanelTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrExpansionPanelTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Expansion Panel"; this.description = "basic IgrExpansionPanel"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrExpansionPanelTemplate(); diff --git a/packages/cli/templates/react/igr-ts/form/default/index.ts b/packages/cli/templates/react/igr-ts/form/default/index.ts index 3f6b31d56..f76c67a90 100644 --- a/packages/cli/templates/react/igr-ts/form/default/index.ts +++ b/packages/cli/templates/react/igr-ts/form/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrFormTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "form"; this.projectType = "igr-ts"; this.name = "Form"; this.description = "basic IgrForm"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrFormTemplate(); diff --git a/packages/cli/templates/react/igr-ts/grid/basic/index.ts b/packages/cli/templates/react/igr-ts/grid/basic/index.ts index 8d1aa221f..a6ad1af75 100644 --- a/packages/cli/templates/react/igr-ts/grid/basic/index.ts +++ b/packages/cli/templates/react/igr-ts/grid/basic/index.ts @@ -1,5 +1,6 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_GRIDS_PACKAGE } from "../../constants"; class GridTemplate extends IgniteUIForReactTemplate { /** @@ -14,7 +15,7 @@ class GridTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.components = ["Grid"]; this.controlGroup = "Data Grids"; - this.packages = ["igniteui-react-grids@~19.6.2"]; + this.packages = [IGNITEUI_REACT_GRIDS_PACKAGE]; this.hasExtraConfiguration = false; } 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 index b14994c78..79e0bac94 100644 --- a/packages/cli/templates/react/igr-ts/icon-button/default/index.ts +++ b/packages/cli/templates/react/igr-ts/icon-button/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrIconButtonTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrIconButtonTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Icon button"; this.description = "basic IgrIconButton"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrIconButtonTemplate(); diff --git a/packages/cli/templates/react/igr-ts/icon/default/index.ts b/packages/cli/templates/react/igr-ts/icon/default/index.ts index 3fe799a2f..21df96a7f 100644 --- a/packages/cli/templates/react/igr-ts/icon/default/index.ts +++ b/packages/cli/templates/react/igr-ts/icon/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrIconTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrIconTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Icon"; this.description = "basic IgrIcon"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrIconTemplate(); diff --git a/packages/cli/templates/react/igr-ts/input/default/index.ts b/packages/cli/templates/react/igr-ts/input/default/index.ts index 8aad8b8d2..16d8d343b 100644 --- a/packages/cli/templates/react/igr-ts/input/default/index.ts +++ b/packages/cli/templates/react/igr-ts/input/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrInputTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrInputTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Input"; this.description = "basic IgrInput"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrInputTemplate(); 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 4b0982d33..8cde1dd42 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 @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrLinearProgressTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "linear-progress"; this.projectType = "igr-ts"; this.name = "Linear Progress"; this.description = "basic IgrLinearProgress"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrLinearProgressTemplate(); diff --git a/packages/cli/templates/react/igr-ts/list/default/index.ts b/packages/cli/templates/react/igr-ts/list/default/index.ts index f14ae344c..70229188d 100644 --- a/packages/cli/templates/react/igr-ts/list/default/index.ts +++ b/packages/cli/templates/react/igr-ts/list/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrListTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "list"; this.projectType = "igr-ts"; this.name = "List"; this.description = "basic IgrList"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrListTemplate(); diff --git a/packages/cli/templates/react/igr-ts/navbar/default/index.ts b/packages/cli/templates/react/igr-ts/navbar/default/index.ts index 944354fd7..0e2c3beed 100644 --- a/packages/cli/templates/react/igr-ts/navbar/default/index.ts +++ b/packages/cli/templates/react/igr-ts/navbar/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrNavbarTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "navbar"; this.projectType = "igr-ts"; this.name = "Navbar"; this.description = "basic IgrNavbar"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrNavbarTemplate(); diff --git a/packages/cli/templates/react/igr-ts/projects/_base/files/package.json b/packages/cli/templates/react/igr-ts/projects/_base/files/package.json index d80e4862b..7bf4a9973 100644 --- a/packages/cli/templates/react/igr-ts/projects/_base/files/package.json +++ b/packages/cli/templates/react/igr-ts/projects/_base/files/package.json @@ -15,7 +15,7 @@ "@testing-library/react": "^16.3.0", "element-internals-polyfill": "^3.0.2", "functions-have-names": "^1.2.3", - "igniteui-react": "~19.6.2", + "igniteui-react": "~19.7.0", "react": "^19.2.4", "react-app-polyfill": "^3.0.0", "react-dom": "^19.2.4", 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 index 6c53e7e82..a1ce953a0 100644 --- a/packages/cli/templates/react/igr-ts/radio-group/default/index.ts +++ b/packages/cli/templates/react/igr-ts/radio-group/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrRadioGroupTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrRadioGroupTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Radio Group"; this.description = "basic IgrRadioGroup"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrRadioGroupTemplate(); diff --git a/packages/cli/templates/react/igr-ts/rating/default/index.ts b/packages/cli/templates/react/igr-ts/rating/default/index.ts index 114d08909..dfc3d96f0 100644 --- a/packages/cli/templates/react/igr-ts/rating/default/index.ts +++ b/packages/cli/templates/react/igr-ts/rating/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrRatingTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrRatingTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Rating"; this.description = "basic IgrRating"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrRatingTemplate(); diff --git a/packages/cli/templates/react/igr-ts/ripple/default/index.ts b/packages/cli/templates/react/igr-ts/ripple/default/index.ts index 8afdb6fe4..50a655752 100644 --- a/packages/cli/templates/react/igr-ts/ripple/default/index.ts +++ b/packages/cli/templates/react/igr-ts/ripple/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrRippleTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "ripple"; this.projectType = "igr-ts"; this.name = "Ripple"; this.description = "basic IgrRipple"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrRippleTemplate(); diff --git a/packages/cli/templates/react/igr-ts/slider/default/index.ts b/packages/cli/templates/react/igr-ts/slider/default/index.ts index 6dd4fca5c..ba28a2232 100644 --- a/packages/cli/templates/react/igr-ts/slider/default/index.ts +++ b/packages/cli/templates/react/igr-ts/slider/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrSliderTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "slider"; this.projectType = "igr-ts"; this.name = "Slider"; this.description = "basic IgrSlider"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrSliderTemplate(); diff --git a/packages/cli/templates/react/igr-ts/switch/default/index.ts b/packages/cli/templates/react/igr-ts/switch/default/index.ts index 0c466e11e..3975076c1 100644 --- a/packages/cli/templates/react/igr-ts/switch/default/index.ts +++ b/packages/cli/templates/react/igr-ts/switch/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrSwitchTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrSwitchTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Switch"; this.description = "basic IgrSwitch"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrSwitchTemplate(); diff --git a/packages/cli/templates/react/igr-ts/tabs/default/index.ts b/packages/cli/templates/react/igr-ts/tabs/default/index.ts index a06e811cd..144c301cb 100644 --- a/packages/cli/templates/react/igr-ts/tabs/default/index.ts +++ b/packages/cli/templates/react/igr-ts/tabs/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrTabsTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "tabs"; this.projectType = "igr-ts"; this.name = "Tabs"; this.description = "basic IgrTabs"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrTabsTemplate(); 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 index a427628c5..aac0d77f6 100644 --- a/packages/cli/templates/react/igr-ts/text-area/default/index.ts +++ b/packages/cli/templates/react/igr-ts/text-area/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrTextAreaTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ class IgrTextAreaTemplate extends IgniteUIForReactTemplate { this.projectType = "igr-ts"; this.name = "Text area"; this.description = "basic IgrTextarea"; - this.packages = ["igniteui-react@~19.5.2"]; + this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrTextAreaTemplate(); diff --git a/packages/cli/templates/react/igr-ts/tree/default/index.ts b/packages/cli/templates/react/igr-ts/tree/default/index.ts index 23e567c27..25e840db8 100644 --- a/packages/cli/templates/react/igr-ts/tree/default/index.ts +++ b/packages/cli/templates/react/igr-ts/tree/default/index.ts @@ -1,4 +1,5 @@ import { IgniteUIForReactTemplate } from "../../../../../lib/templates/IgniteUIForReactTemplate"; +import { IGNITEUI_REACT_PACKAGE } from "../../constants"; class IgrTreeTemplate extends IgniteUIForReactTemplate { constructor() { @@ -10,7 +11,7 @@ this.id = "tree"; this.projectType = "igr-ts"; this.name = "Tree"; this.description = "basic IgrTree"; -this.packages = ["igniteui-react@~19.5.2"]; +this.packages = [IGNITEUI_REACT_PACKAGE]; } } module.exports = new IgrTreeTemplate(); diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/default/index.ts b/packages/cli/templates/webcomponents/igc-ts/grid/default/index.ts index d9832ee3e..6c502014c 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/default/index.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/default/index.ts @@ -10,7 +10,7 @@ class IgcGridTemplate extends IgniteUIForWebComponentsTemplate { this.projectType = "igc-ts"; this.name = "Grid"; this.description = "IgcGrid with local data"; - this.packages = [ "igniteui-webcomponents-grids@~7.0.0" ]; + this.packages = [ "igniteui-webcomponents-grids@~7.1.0" ]; } } module.exports = new IgcGridTemplate(); diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/index.ts b/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/index.ts index cc4a8ffaf..c6b2ede45 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/index.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/index.ts @@ -10,7 +10,7 @@ class IgcGridEditingTemplate extends IgniteUIForWebComponentsTemplate { this.projectType = "igc-ts"; this.name = "Grid Editing"; this.description = "IgcGrid with editing enabled"; - this.packages = [ "igniteui-webcomponents-grids@~7.0.0" ]; + this.packages = [ "igniteui-webcomponents-grids@~7.1.0" ]; } } module.exports = new IgcGridEditingTemplate(); diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/index.ts b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/index.ts index cc64348fa..7e4e186dc 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/index.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/index.ts @@ -10,7 +10,7 @@ class IgcGridSummariesTemplate extends IgniteUIForWebComponentsTemplate { this.projectType = "igc-ts"; this.name = "Grid Summaries"; this.description = "IgcGrid with column summaries"; - this.packages = [ "igniteui-webcomponents-grids@~7.0.0" ]; + this.packages = [ "igniteui-webcomponents-grids@~7.1.0" ]; } } module.exports = new IgcGridSummariesTemplate(); diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json index 3e5959ff8..0515300d8 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@vaadin/router": "^2.0.0", - "igniteui-webcomponents": "~7.1.3", + "igniteui-webcomponents": "~7.2.0", "lit": "^3.3.2" }, "devDependencies": { diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json index 26f2d84e4..a6aecdaf8 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json @@ -15,11 +15,11 @@ "@vaadin/router": "^2.0.0", "@igniteui/material-icons-extended": "^3.0.2", "igniteui-dockmanager": "^2.1.1", - "igniteui-webcomponents": "~7.1.3", + "igniteui-webcomponents": "~7.2.0", "igniteui-webcomponents-charts": "~7.0.0", "igniteui-webcomponents-core": "~7.0.0", "igniteui-webcomponents-gauges": "~7.0.0", - "igniteui-webcomponents-grids": "~7.0.0", + "igniteui-webcomponents-grids": "~7.1.0", "igniteui-webcomponents-inputs": "~7.0.0", "igniteui-webcomponents-layouts": "~7.0.0", "lit": "^3.3.2" diff --git a/packages/cli/templates/webcomponents/igc-ts/tree/default/index.ts b/packages/cli/templates/webcomponents/igc-ts/tree/default/index.ts index 93edc59a0..6bc121e41 100644 --- a/packages/cli/templates/webcomponents/igc-ts/tree/default/index.ts +++ b/packages/cli/templates/webcomponents/igc-ts/tree/default/index.ts @@ -12,7 +12,7 @@ class IgcTreeTemplate extends IgniteUIForWebComponentsTemplate { this.description = "basic IgcTree"; this.packages = [ "igniteui-webcomponents-core@~7.0.0", - "igniteui-webcomponents-grids@~7.0.0", + "igniteui-webcomponents-grids@~7.1.0", "igniteui-webcomponents-inputs@~7.0.0", "igniteui-webcomponents-layouts@~7.0.0" ]; diff --git a/packages/igx-templates/constants.ts b/packages/igx-templates/constants.ts index cd14530cb..89611780b 100644 --- a/packages/igx-templates/constants.ts +++ b/packages/igx-templates/constants.ts @@ -1 +1 @@ -export const IGNITEUI_ANGULAR_PACKAGE = "igniteui-angular@~21.2.1"; +export const IGNITEUI_ANGULAR_PACKAGE = "igniteui-angular@~21.2.5"; diff --git a/packages/igx-templates/igx-ts/projects/_base/files/package.json b/packages/igx-templates/igx-ts/projects/_base/files/package.json index 8703a8448..a3044c073 100644 --- a/packages/igx-templates/igx-ts/projects/_base/files/package.json +++ b/packages/igx-templates/igx-ts/projects/_base/files/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser-dynamic": "~21.2.0", "@angular/router": "~21.2.0", "hammerjs": "~2.0.8", - "igniteui-angular": "~21.2.1", + "igniteui-angular": "~21.2.5", "minireset.css": "~0.0.7", "rxjs": "~7.8.1", "tslib": "~2.8.1", diff --git a/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json b/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json index d46eb57c5..468a590a8 100644 --- a/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json +++ b/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json @@ -21,7 +21,7 @@ "@angular/router": "~21.2.0", "angular-auth-oidc-client": "~21.0.1", "hammerjs": "~2.0.8", - "igniteui-angular": "~21.2.1", + "igniteui-angular": "~21.2.5", "minireset.css": "~0.0.7", "rxjs": "~7.8.1", "tslib": "~2.8.1", diff --git a/spec/templates/react-spec.ts b/spec/templates/react-spec.ts index b3adf7858..2abe830c0 100644 --- a/spec/templates/react-spec.ts +++ b/spec/templates/react-spec.ts @@ -1,4 +1,5 @@ import { AGENTS_TEMPLATE_FILE, AI_CONFIG_PROJECT_ID, AI_SKILLS_DIR_NAME, App, Framework, Util } from "@igniteui/cli-core"; +import { IGNITEUI_REACT_GRIDS_PACKAGE, IGNITEUI_REACT_PACKAGE } from "../../packages/cli/templates/react/igr-ts/constants"; import path from "path"; import * as fs from "fs"; @@ -34,6 +35,45 @@ describe("React templates", () => { } }); + it("Igr templates and project package.json files should use the shared React package constants", async () => { + const reactFramework: Framework = require(templatesLocation); + const projLibrary = reactFramework.projectLibraries.find(x => x.projectType === "igr-ts"); + const expectedPackages: Record = { + [IGNITEUI_REACT_PACKAGE.split("@")[0]]: IGNITEUI_REACT_PACKAGE.split("@")[1], + [IGNITEUI_REACT_GRIDS_PACKAGE.split("@")[0]]: IGNITEUI_REACT_GRIDS_PACKAGE.split("@")[1] + }; + + projLibrary.templates + .flatMap(t => t.packages || []) + .filter(p => typeof p === "string") + .forEach(p => { + const [pkg, version] = p.split("@"); + if (expectedPackages[pkg]) { + expect(version) + .withContext(`Unexpected React package version: ${p}`) + .toBe(expectedPackages[pkg]); + } + }); + + const roots = [ + ...new Set(projLibrary.projects.flatMap(p => p.templatePaths)) + ]; + + for (const root of roots) { + const file = path.resolve(process.cwd(), root, "package.json"); + if (!fs.existsSync(file)) continue; + + const { dependencies = {}, devDependencies = {} } = require(file); + const deps = { ...dependencies, ...devDependencies }; + + for (const [pkg, version] of Object.entries(expectedPackages)) { + if (deps[pkg]) { + expect(deps[pkg]).toBe(version); + } + } + } + }); + describe("ai-config template file presence", () => { it("ai-config project template must be registered", () => { const reactFramework: Framework = require(templatesLocation);