Skip to content

[property-grid & tree-widget]: Upgrade TypeScript to 7.0 - #1772

Merged
saskliutas merged 5 commits into
masterfrom
agents/typescript-70-upgrade-property-grid-tree-widget
Aug 11, 2026
Merged

[property-grid & tree-widget]: Upgrade TypeScript to 7.0#1772
saskliutas merged 5 commits into
masterfrom
agents/typescript-70-upgrade-property-grid-tree-widget

Conversation

@saskliutas

@saskliutas saskliutas commented Aug 11, 2026

Copy link
Copy Markdown
Member

Updated TS version to 7.0.
Added explicit types for *TreeComponent exports 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,

@saskliutas saskliutas changed the title Upgrade TypeScript to 7.0 and refactor tree-widget components [property-grid & tree-widget]: Upgrade TypeScript to 7.0 Aug 11, 2026
Update components to align with TypeScript 7.0 standards and remove deprecated code. Adjust API documentation accordingly.
@saskliutas
saskliutas marked this pull request as ready for review August 11, 2026 11:27
@saskliutas
saskliutas requested review from a team as code owners August 11, 2026 11:27
@saskliutas
saskliutas requested review from JonasDov and a lite review from Copilot August 11, 2026 11:27

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, updated lib, CJS config tweaks) and bumps TypeScript-related dependencies.
  • Adds explicit callable “component + namespace” types for several *TreeComponent exports to improve api-extractor output.
  • Adds *.scss module 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.

Comment thread packages/tree-widget/package.json
Comment thread packages/property-grid/package.json
Comment thread apps/test-viewer/package.json
Comment thread apps/performance-tests/package.json
Comment thread apps/learning-snippets/package.json
Comment thread packages/tree-widget/tsconfig.cjs.json

@JonasDov JonasDov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update test-utilities package. Other than that LGTM.

@saskliutas
saskliutas merged commit 00e1622 into master Aug 11, 2026
14 checks passed
@saskliutas
saskliutas deleted the agents/typescript-70-upgrade-property-grid-tree-widget branch August 11, 2026 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants