Skip to content

[property-grid]: Version 2.0 - #1692

Merged
saskliutas merged 15 commits into
masterfrom
major-property-grid-bump
Jul 16, 2026
Merged

[property-grid]: Version 2.0#1692
saskliutas merged 15 commits into
masterfrom
major-property-grid-bump

Conversation

@saskliutas

Copy link
Copy Markdown
Member

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.

saskliutas and others added 12 commits May 25, 2026 16:35
* 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>
@saskliutas
saskliutas marked this pull request as ready for review July 15, 2026 15:01
@saskliutas
saskliutas requested a review from a team as a code owner July 15, 2026 15:01
Copilot AI review requested due to automatic review settings July 15, 2026 15:01
@saskliutas
saskliutas requested a review from a team as a code owner July 15, 2026 15:01

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

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 lib ESM output.
  • Removed deprecated Property Grid APIs and deprecated selection handling; Property Grid now requires unified selectionStorage to 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.

Comment thread packages/itwin/tree-widget/package.json
Comment thread packages/itwin/property-grid/package.json Outdated

@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: 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.

Comment thread packages/itwin/property-grid/package.json Outdated
Comment thread change/@itwin-property-grid-react-8c37b79f-cc98-4ad5-adaa-1fdd378a8bda.json Outdated
@saskliutas
saskliutas merged commit 2d966e0 into master Jul 16, 2026
14 checks passed
@saskliutas
saskliutas deleted the major-property-grid-bump branch July 16, 2026 13:19
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.

Property grid: 2.0 Release plan

3 participants