diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js
new file mode 100644
index 000000000..343f9af56
--- /dev/null
+++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js
@@ -0,0 +1,35 @@
+import js from '@eslint/js'
+import globals from 'globals'
+import tseslint from 'typescript-eslint'
+import { defineConfig, globalIgnores } from 'eslint/config'
+
+export default defineConfig([
+ globalIgnores(['dist']),
+ {
+ files: ['**/*.{js,ts}'],
+ extends: [
+ js.configs.recommended,
+ tseslint.configs.recommended
+ ],
+ languageOptions: {
+ ecmaVersion: 2020,
+ globals: globals.browser,
+ },
+ rules: {
+ '@typescript-eslint/no-unused-vars': [
+ 'error',
+ {
+ args: 'all',
+ argsIgnorePattern: '^_',
+ caughtErrors: 'all',
+ caughtErrorsIgnorePattern: '^_',
+ destructuredArrayIgnorePattern: '^(_|set)',
+ varsIgnorePattern: '^_',
+ ignoreRestSiblings: true,
+ },
+ ],
+ '@typescript-eslint/no-inferrable-types': 'off',
+ '@typescript-eslint/no-explicit-any': 'off',
+ },
+ },
+])
diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs
deleted file mode 100644
index bb4196056..000000000
--- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs
+++ /dev/null
@@ -1,37 +0,0 @@
-import js from '@eslint/js';
-import typescriptParser from '@typescript-eslint/parser';
-import tseslint from '@typescript-eslint/eslint-plugin';
-import { FlatCompat } from "@eslint/eslintrc";
-
-const compat = new FlatCompat({
- recommendedConfig: js.configs.recommended
-});
-
-export default [
- ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'),
- {
- files: ['**/*.ts', '**/*.tsx'],
- languageOptions: {
- globals: {
- browser: true,
- es2021: true,
- jasmine: true,
- },
- parser: typescriptParser,
- parserOptions: {
- ecmaVersion: 12,
- sourceType: 'module',
- },
- },
- plugins: {
- '@typescript-eslint': tseslint,
- },
- rules: {
- '@typescript-eslint/no-inferrable-types': 'off',
- '@typescript-eslint/no-explicit-any': 'off',
- },
- },
- {
- ignores: ['dist', 'test']
- }
-];
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 f010a517f..88ee880a5 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
@@ -15,35 +15,35 @@
"scripts": {
"start": "concurrently -k -r \"tsc --watch\" \"vite\"",
"build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build",
- "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
- "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore",
+ "start:build": "vite preview --open",
+ "lint": "eslint",
"test": "tsc --project tsconfig.test.json && vitest run"
},
"dependencies": {
"@vaadin/router": "^2.0.0",
- "lit": "^3.3.0",
- "typescript": "~5.8.3",
+ "lit": "^3.3.2",
+ "typescript": "^5.9.3",
"igniteui-webcomponents": "~7.1.0"
},
"devDependencies": {
+ "@eslint/js": "^9.39.4",
"@babel/preset-env": "^7.28.3",
- "@typescript-eslint/eslint-plugin": "^8.46.0",
- "@typescript-eslint/parser": "^8.46.0",
- "@web/dev-server": "^0.4.6",
+ "@vitest/browser-playwright": "^4.1.0",
"babel-plugin-template-html-minifier": "^4.1.0",
"concurrently": "^9.2.1",
"deepmerge": "^4.3.1",
- "eslint": "^9.20.0",
- "eslint-plugin-lit": "^2.1.1",
+ "eslint": "^9.39.4",
+ "eslint-plugin-lit": "^2.2.1",
+ "globals": "^17.4.0",
"igniteui-cli": "~14.8.0",
- "playwright": "^1.55.1",
- "rimraf": "^6.0.1",
+ "playwright": "^1.58.2",
+ "rimraf": "^6.1.3",
"source-map": "^0.7.6",
"tslib": "^2.8.1",
- "vite": "^7.1.16",
- "vite-plugin-pwa": "^1.0.3",
- "vite-plugin-static-copy": "^3.1.3",
- "vitest": "^3.2.4",
- "@vitest/browser": "^3.2.4"
+ "typescript-eslint": "^8.57.0",
+ "vite": "^7.0.0",
+ "vite-plugin-pwa": "^1.2.0",
+ "vite-plugin-static-copy": "^4.0.1",
+ "vitest": "^4.1.0"
}
}
diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts
index 7c3e11950..9f0e2dae1 100644
--- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts
+++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts
@@ -1,4 +1,6 @@
-import { defineConfig } from 'vitest/config';
+///
+import { playwright } from '@vitest/browser-playwright'
+import { defineConfig } from 'vite'
import { VitePWA } from 'vite-plugin-pwa';
import { viteStaticCopy } from 'vite-plugin-static-copy';
@@ -10,7 +12,7 @@ export default defineConfig({
chunkFileNames: '[hash].js',
assetFileNames: '[hash][extname]',
},
- onwarn: (warning, warn) => {
+ onwarn: (warning: any, warn: any) => {
if (warning.code === 'THIS_IS_UNDEFINED') return;
warn(warning);
},
@@ -23,19 +25,15 @@ export default defineConfig({
test: {
browser: {
enabled: true,
- provider: 'playwright',
- instances: [
- {
- browser: 'chromium'
- },
- ],
- },
+ provider: playwright(),
+ instances: [{ browser: 'chromium' }]
+ }
},
plugins: [
/** Copy static assets */
viteStaticCopy({
targets: [
- { src: 'src/assets', dest: 'src' }
+ { src: 'src/assets', dest: '.' }
],
silent: true,
}),
diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs
deleted file mode 100644
index 032579273..000000000
--- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs
+++ /dev/null
@@ -1,27 +0,0 @@
-// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
-
-/** Use Hot Module replacement by adding --hmr to the start command */
-const hmr = process.argv.includes('--hmr');
-
-export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
- open: '/',
- /** Use regular watch mode if HMR is not enabled. */
- watch: !hmr,
- /** Resolve bare module imports */
- nodeResolve: {
- exportConditions: ['browser', 'development'],
- },
-
- /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
- // esbuildTarget: 'auto'
-
- /** Set appIndex to enable SPA routing */
- appIndex: './index.html',
-
- plugins: [
- /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
- // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
- ],
-
- // See documentation for all available options
-});
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 95b5679a4..ad6525079 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
@@ -13,14 +13,14 @@
"./$(dashName).js": "./dist/src/$(dashName).js"
},
"scripts": {
- "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"",
+ "start": "tsc && concurrently -k -r \"tsc --watch\" \"vite\"",
"build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build",
- "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
- "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore",
+ "start:build": "vite preview --open",
+ "lint": "eslint",
"test": "tsc --project tsconfig.test.json && vitest run"
},
"dependencies": {
- "@vaadin/router": "^1.7.4",
+ "@vaadin/router": "^2.0.0",
"@igniteui/material-icons-extended": "^3.0.2",
"igniteui-dockmanager": "^2.1.0",
"igniteui-webcomponents": "~7.1.0",
@@ -30,28 +30,28 @@
"igniteui-webcomponents-grids": "~7.0.0",
"igniteui-webcomponents-inputs": "~7.0.0",
"igniteui-webcomponents-layouts": "~7.0.0",
- "lit": "^3.2.1",
- "typescript": "~5.7.2"
+ "lit": "^3.3.2",
+ "typescript": "^5.9.3"
},
"devDependencies": {
+ "@eslint/js": "^9.39.4",
"@babel/preset-env": "^7.28.3",
- "@typescript-eslint/eslint-plugin": "^8.46.0",
- "@typescript-eslint/parser": "^8.46.0",
- "@web/dev-server": "^0.4.6",
+ "@vitest/browser-playwright": "^4.1.0",
"babel-plugin-template-html-minifier": "^4.1.0",
"concurrently": "^9.2.1",
"deepmerge": "^4.3.1",
- "eslint": "^9.20.0",
- "eslint-plugin-lit": "^2.1.1",
+ "eslint": "^9.39.4",
+ "eslint-plugin-lit": "^2.2.1",
+ "globals": "^17.4.0",
"igniteui-cli": "~14.8.0",
- "playwright": "^1.55.1",
- "rimraf": "^6.0.1",
+ "playwright": "^1.58.2",
+ "rimraf": "^6.1.3",
"source-map": "^0.7.6",
"tslib": "^2.8.1",
- "vite": "^7.1.16",
- "vite-plugin-pwa": "^1.0.3",
- "vite-plugin-static-copy": "^3.1.3",
- "vitest": "^3.2.4",
- "@vitest/browser": "^3.2.4"
+ "typescript-eslint": "^8.57.0",
+ "vite": "^7.0.0",
+ "vite-plugin-pwa": "^1.2.0",
+ "vite-plugin-static-copy": "^4.0.1",
+ "vitest": "^4.1.0"
}
}
diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts
index c95254ba8..447b33cbe 100644
--- a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts
+++ b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts
@@ -14,7 +14,7 @@ defineComponents(
);
@customElement('app-root')
-export class App extends LitElement {
+export default class App extends LitElement {
static styles = css`
router-outlet {
height: 100%;
@@ -35,10 +35,10 @@ export class App extends LitElement {
return html`
Ignite UI CLI
- ${routes.filter((element, index) => index < routes.length - 1).map(i => html`
+ ${routes.filter(route => route.name).map(({path, name}) => html`
- ${i.name}
+ ${name}
`)}