[property-grid & tree-widget]: Upgrade TypeScript to 7.0 - #1772
Merged
saskliutas merged 5 commits intoAug 11, 2026
Conversation
Update components to align with TypeScript 7.0 standards and remove deprecated code. Adjust API documentation accordingly.
grigasp
approved these changes
Aug 11, 2026
There was a problem hiding this comment.
Tree-Widget benchmark
| Benchmark suite | Current: 3288c65 | Previous: 8df07d4 | Deviation | Status |
|---|---|---|---|---|
models tree creates initial filtered view for 50k target items |
684 ms |
1071 ms |
-36.13% |
✅ |
models tree creates initial filtered view for 50k target items (P95 of main thread blocks) |
53 ms |
95 ms |
-44.21% |
〰️ |
models tree validates categories visibility for imodel with 50k categories |
5570 ms |
12371 ms |
-54.98% |
✅ |
models tree validates categories visibility for imodel with 50k categories (P95 of main thread blocks) |
68 ms |
85 ms |
-20% |
〰️ |
models tree changing model visibility changes visibility for 50k elements |
2299 ms |
3371 ms |
-31.80% |
✅ |
models tree changing model visibility changes visibility for 50k elements (P95 of main thread blocks) |
86 ms |
123 ms |
-30.08% |
〰️ |
models tree changing category visibility changes visibility for 50k elements |
2151 ms |
3344 ms |
-35.68% |
✅ |
models tree changing category visibility changes visibility for 50k elements (P95 of main thread blocks) |
0 ms |
23 ms |
-100% |
〰️ |
models tree changing per-model-category override changes visibility for 50k elements |
2122 ms |
3301 ms |
-35.72% |
✅ |
models tree changing per-model-category override changes visibility for 50k elements (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree changing element visibility changes only parent nodes visibility with 50k elements |
3475 ms |
4669 ms |
-25.57% |
✅ |
models tree changing element visibility changes only parent nodes visibility with 50k elements (P95 of main thread blocks) |
56 ms |
89 ms |
-37.08% |
〰️ |
categories tree creates initial filtered view for 50k items |
1444 ms |
1515 ms |
-4.69% |
〰️ |
categories tree creates initial filtered view for 50k items (P95 of main thread blocks) |
417 ms |
303 ms |
37.62% |
🚨 |
categories tree changing definition container visibility changes visibility for 50k subCategories |
2273 ms |
2811 ms |
-19.14% |
✅ |
categories tree changing definition container visibility changes visibility for 50k subCategories (P95 of main thread blocks) |
43 ms |
57 ms |
-24.56% |
〰️ |
categories tree changing definition container visibility changes visibility for 50k categories |
4586 ms |
5886 ms |
-22.09% |
✅ |
categories tree changing definition container visibility changes visibility for 50k categories (P95 of main thread blocks) |
93 ms |
126 ms |
-26.19% |
〰️ |
This comment was automatically generated by workflow using github-action-benchmark.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the TypeScript/tooling setup for tree-widget and property-grid (plus related apps) and adjusts exported tree component typings to improve generated API extraction.
Changes:
- Updates TS configs (e.g.,
rootDir, updatedlib, CJS config tweaks) and bumps TypeScript-related dependencies. - Adds explicit callable “component + namespace” types for several
*TreeComponentexports to improve api-extractor output. - Adds
*.scssmodule type declarations to packages that import SCSS.
Reviewed changes
Copilot reviewed 16 out of 23 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/tree-widget/tsconfig.json | Adds rootDir and expands lib targets for TS 7-era libs. |
| packages/tree-widget/tsconfig.cjs.json | Adjusts CJS build compiler options (module resolution/conditions). |
| packages/tree-widget/src/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.tsx | Introduces explicit exported component+namespace type to stabilize API extraction. |
| packages/tree-widget/src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx | Adds explicit component+namespace type for cleaner extracted API. |
| packages/tree-widget/src/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx | Adds explicit component+namespace type for cleaner extracted API. |
| packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.tsx | Adds explicit component+namespace type for cleaner extracted API. |
| packages/tree-widget/src/styles.d.ts | Adds *.scss module typing for TS. |
| packages/tree-widget/package.json | Updates TypeScript-related devDependencies. |
| packages/tree-widget/api/tree-widget-react.api.md | Updates generated API report to reflect new named component types. |
| packages/property-grid/tsconfig.lib.json | Adds rootDir for library build output consistency. |
| packages/property-grid/tsconfig.json | Adds Node types to base config and keeps DOM/ES libs. |
| packages/property-grid/src/styles.d.ts | Adds *.scss module typing for TS. |
| packages/property-grid/package.json | Updates TypeScript-related devDependencies. |
| packages/property-grid/pnpm-lock.yaml | Lockfile updates for TS/tooling dependency graph. |
| apps/test-viewer/package.json | Updates TypeScript-related devDependencies. |
| apps/test-viewer/pnpm-lock.yaml | Lockfile updates for TS/tooling dependency graph. |
| apps/performance-tests/tsconfig.json | Adds rootDir for build output consistency. |
| apps/performance-tests/package.json | Updates TypeScript-related devDependencies. |
| apps/performance-tests/pnpm-lock.yaml | Lockfile updates for TS/tooling dependency graph. |
| apps/learning-snippets/tsconfig.json | Adds rootDir for build output consistency. |
| apps/learning-snippets/package.json | Updates TypeScript-related devDependencies. |
Files not reviewed (5)
- apps/learning-snippets/pnpm-lock.yaml: Generated file
- apps/performance-tests/pnpm-lock.yaml: Generated file
- apps/test-viewer/pnpm-lock.yaml: Generated file
- packages/property-grid/pnpm-lock.yaml: Generated file
- packages/tree-widget/pnpm-lock.yaml: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
JonasDov
requested changes
Aug 11, 2026
JonasDov
left a comment
Contributor
There was a problem hiding this comment.
Update test-utilities package. Other than that LGTM.
JonasDov
approved these changes
Aug 11, 2026
MartynasStrazdas
approved these changes
Aug 11, 2026
saskliutas
deleted the
agents/typescript-70-upgrade-property-grid-tree-widget
branch
August 11, 2026 12:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated TS version to 7.0.
Added explicit types for
*TreeComponentexports that act as component and namespace. This was required because api-extractor was producing very ugly extraction and lost tags/comments. Explicit type solved this,