[property-grid]: Version 2.0 - #1692
Merged
Merged
Conversation
* Remove deprecated APIs * change * Update packages/itwin/property-grid/src/property-grid-react/PropertyGridUiItemsProvider.tsx Co-authored-by: Grigas <35135765+grigasp@users.noreply.github.com> --------- Co-authored-by: Grigas <35135765+grigasp@users.noreply.github.com>
* Remove deprecated unified selection handling * change * Reduce nesting
* Remove cjs build * change
* Switch to new editor system in property grid by default * change * Update change/@itwin-property-grid-react-27363ac7-09b3-46b8-9466-3769277cf108.json Co-authored-by: Grigas <35135765+grigasp@users.noreply.github.com> --------- Co-authored-by: Grigas <35135765+grigasp@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates @itwin/property-grid-react toward the planned 2.0 release by reducing legacy/deprecated surface area, aligning with newer iTwin/AppUI + Presentation packages, and simplifying packaging/build output (ESM-only).
Changes:
- Dropped CommonJS build output and updated TS build/exports to a single
libESM output. - Removed deprecated Property Grid APIs and deprecated selection handling; Property Grid now requires unified
selectionStorageto be provided. - Bumped/expanded dependency support (notably
@itwin/presentation-components@6) and updated test-viewer + learning snippets accordingly, including defaulting to the “new” editor system.
Reviewed changes
Copilot reviewed 39 out of 43 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/itwin/tree-widget/pnpm-lock.yaml | Updates lockfile to newer @itwin/* versions, including presentation-components@6. |
| packages/itwin/tree-widget/package.json | Expands presentation-components peer range to include v6. |
| packages/itwin/property-grid/tsconfig.lib.json | Updates emit config to build into lib/ (single output folder). |
| packages/itwin/property-grid/tsconfig.json | Sets noEmit for the base config and bumps TS lib target to ESNext. |
| packages/itwin/property-grid/tsconfig.cjs.json | Removes CJS build config. |
| packages/itwin/property-grid/src/test/TestUtils.tsx | Updates stubs to match new Presentation APIs and unified selection usage. |
| packages/itwin/property-grid/src/test/PropertyGridUiItemsProvider.test.tsx | Updates tests to remove deprecated provider and require selectionStorage. |
| packages/itwin/property-grid/src/test/hooks/UseInstanceSelection.test.tsx | Updates hook tests to unified selection storage only (drops deprecated manager path). |
| packages/itwin/property-grid/src/test/components/PropertyGridContent.test.tsx | Adjusts editing behavior expectations for the new editor system/defaults. |
| packages/itwin/property-grid/src/test/components/PropertyGrid.test.tsx | Updates component tests to pass selectionStorage and use unified storage APIs. |
| packages/itwin/property-grid/src/test/components/MultiElementPropertyGrid.test.tsx | Updates multi-element grid tests to unified selection storage only. |
| packages/itwin/property-grid/src/property-grid-react/PropertyGridUiItemsProvider.tsx | Removes deprecated provider API and requires selectionStorage throughout widget logic. |
| packages/itwin/property-grid/src/property-grid-react/hooks/UseUnifiedSelectionHandler.ts | Deletes legacy adapter hook that supported deprecated selection manager path. |
| packages/itwin/property-grid/src/property-grid-react/hooks/UseInstanceSelection.ts | Switches hook implementation to direct selectionStorage usage (no deprecated path). |
| packages/itwin/property-grid/src/property-grid-react/hooks/UseDataProvider.ts | Removes deprecated data-provider method usage in wrapper. |
| packages/itwin/property-grid/src/property-grid-react/components/PropertyGrid.tsx | Makes selectionStorage required prop for PropertyGrid. |
| packages/itwin/property-grid/src/property-grid-react/components/MultiElementPropertyGrid.tsx | Uses selectionStorage.selectionChangeEvent directly to reset view on selection change. |
| packages/itwin/property-grid/src/property-grid-react/components/FilteringPropertyGrid.tsx | Defaults editorSystem to "new" when not explicitly set. |
| packages/itwin/property-grid/src/property-grid-react.ts | Stops re-exporting removed/deprecated UI items provider API. |
| packages/itwin/property-grid/README.md | Updates examples to pass selectionStorage. |
| packages/itwin/property-grid/package.json | Converts package to ESM-only output + updates peers/dev deps, bumps core/appui/presentation versions, updates scripts. |
| packages/itwin/property-grid/api/property-grid-react.exports.csv | Removes deprecated exports from the public API list. |
| packages/itwin/property-grid/api/property-grid-react.api.md | Updates API report to reflect removed deprecated symbols and required props. |
| change/@itwin-tree-widget-react-8b3acca0-f50b-4293-a4b1-22da86c3b221.json | Publishes tree-widget change note for presentation-components@6 support. |
| change/@itwin-property-grid-react-da9d4d0e-e7ac-446f-9bc8-77fc79531fd6.json | Publishes major change note for dropping CJS. |
| change/@itwin-property-grid-react-b271e2d2-3c47-4842-9ee9-87d43614b111.json | Publishes major change note for removing deprecated provider and legacy shouldShow overload. |
| change/@itwin-property-grid-react-a30bb4a3-267f-4b83-b9cf-80a0a0e41772.json | Publishes major change note for removing deprecated Presentation.selection handling. |
| change/@itwin-property-grid-react-9005608d-33de-42b6-bf02-553706184551.json | Publishes major change note for AppUI peer bump. |
| change/@itwin-property-grid-react-8de1da6a-756b-4e40-ab2e-d8cb2b603b6c.json | Publishes major change note for required selectionStorage on components. |
| change/@itwin-property-grid-react-8c37b79f-cc98-4ad5-adaa-1fdd378a8bda.json | Publishes major change note for broader dependency + React support updates. |
| change/@itwin-property-grid-react-27363ac7-09b3-46b8-9466-3769277cf108.json | Publishes major change note for defaulting to "new" editor system. |
| change/@itwin-property-grid-react-07764625-b7f5-40a0-9cdf-614bde5397d9.json | Publishes major change note for presentation-components@6 peer bump. |
| apps/test-viewer/src/UiProvidersConfig.tsx | Removes explicit editorSystem: "new" since it’s now the default. |
| apps/test-viewer/package.json | Bumps test-viewer dependencies to align with the updated iTwin/presentation versions. |
| apps/learning-snippets/src/test/tree-widget/FilteredPaths.test.tsx | Updates query row format usage and row indexing to match updated query behavior. |
| apps/learning-snippets/src/test/property-grid/Usage.test.tsx | Updates snippet to pass selectionStorage into createPropertyGrid. |
| apps/learning-snippets/src/test/property-grid/Telemetry.test.tsx | Updates snippets/tests to use unified selection storage instead of deprecated Presentation selection. |
| apps/learning-snippets/src/test/property-grid/SettingMenuItem.test.tsx | Updates snippet to pass selectionStorage into PropertyGridComponent. |
| apps/learning-snippets/src/test/property-grid/ContextMenuItem.test.tsx | Updates snippet to pass selectionStorage and set selection through unified storage. |
| apps/learning-snippets/package.json | Bumps learning-snippets dependencies to align with updated iTwin/presentation versions. |
Files not reviewed (1)
- packages/itwin/tree-widget/pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Tree-Widget benchmark
| Benchmark suite | Current: b5e7073 | Previous: cc6226c | Deviation | Status |
|---|---|---|---|---|
models tree creates initial filtered view for 50k target items |
1090 ms |
1044 ms |
4.41% |
〰️ |
models tree creates initial filtered view for 50k target items (P95 of main thread blocks) |
121 ms |
116 ms |
4.31% |
〰️ |
models tree validates categories visibility for imodel with 50k categories |
10943 ms |
11201 ms |
-2.30% |
〰️ |
models tree validates categories visibility for imodel with 50k categories (P95 of main thread blocks) |
90 ms |
81 ms |
11.11% |
〰️ |
models tree changing model visibility changes visibility for 50k elements |
3399 ms |
2971 ms |
14.41% |
🚨 |
models tree changing model visibility changes visibility for 50k elements (P95 of main thread blocks) |
119 ms |
0 ms |
11900% |
🚨 |
models tree changing category visibility changes visibility for 50k elements |
3142 ms |
2835 ms |
10.83% |
🚨 |
models tree changing category visibility changes visibility for 50k elements (P95 of main thread blocks) |
21 ms |
0 ms |
2100% |
〰️ |
models tree changing per-model-category override changes visibility for 50k elements |
3119 ms |
3018 ms |
3.35% |
〰️ |
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 |
4322 ms |
4642 ms |
-6.89% |
〰️ |
models tree changing element visibility changes only parent nodes visibility with 50k elements (P95 of main thread blocks) |
79 ms |
84 ms |
-5.95% |
〰️ |
categories tree creates initial filtered view for 50k items |
1397 ms |
1457 ms |
-4.12% |
〰️ |
categories tree creates initial filtered view for 50k items (P95 of main thread blocks) |
239 ms |
279 ms |
-14.34% |
〰️ |
categories tree changing definition container visibility changes visibility for 50k subCategories |
2673 ms |
2796 ms |
-4.40% |
〰️ |
categories tree changing definition container visibility changes visibility for 50k subCategories (P95 of main thread blocks) |
41 ms |
56 ms |
-26.79% |
〰️ |
categories tree changing definition container visibility changes visibility for 50k categories |
5618 ms |
5791 ms |
-2.99% |
〰️ |
categories tree changing definition container visibility changes visibility for 50k categories (P95 of main thread blocks) |
115 ms |
125 ms |
-8% |
〰️ |
This comment was automatically generated by workflow using github-action-benchmark.
grigasp
reviewed
Jul 16, 2026
grigasp
approved these changes
Jul 16, 2026
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.
Closes #1669
This PR will hold major changes planned for property-grid and listed in linked issue. Major changes will be merged into this branch and merged into master in one go when all planned changes are made.