365Fanatic / M365 Roadmap / PnP Modern Search
Community solution

PnP Modern Search releases

PnP Modern Search releases for the SharePoint search SPFx web parts, refreshed daily from GitHub. Each release lists the changelog and links to the .sppkg package.

Latest stable version: 4.25.0 · 17 sep 2026 · view on GitHub

To install: get the .sppkg file from the release on GitHub, upload it to your tenant App Catalog (SharePoint admin center → More features → Apps), choose Enable and add the web parts to a page.

Last updated: 15 okt 2026, 11:54 CEST · 10 releases · latest 4.25.0

Need help? Read our PnP PowerShell guides: installing, connecting and authenticating. →
What is this? PnP Modern Search is an open-source community solution for SharePoint Online, maintained by the Microsoft 365 (M365) & Power Platform community — not a Microsoft product and not covered by Microsoft support. It is published under the MIT licence. Release notes are summarised here; the full notes, source and issue tracker live on GitHub.

What's changed

  • Hide hierarchical terms while refiners load in #4942 @kasperbolarsen
  • Preserve filter counts for pending selections in #4943 @kasperbolarsen
  • Fix cleared filters remaining applied after vertical switch in #4945 @kasperbolarsen
  • Fix: preserve pipe-delimited filter values in #4953 @kasperbolarsen
  • Fix filter controls on dark section backgrounds in #4954 @kasperbolarsen
  • Fix refinement filters returning 0 results for values with accented characters with @Copilot in #4959 @wobba
  • fix(#3517): resolve tokens in SortList so random sort seeds work with @Copilot in #4944 @wobba
  • Allow odopen: links so templates can open files in desktop client apps in #4948 @jeppesc11
  • Ensure numeric values work as Results-to-Results filters in #4960 @kasperbolarsen
  • chore(deps): bump mkdocs-material from 7.2.4 to 9.7.7[bot] in #4950 @dependabot
  • Align documentation publishing dependencies in #4961 @wobba
  • Bump release version to 4.25.0 in #4962 @wobba
  • fix: resolve hierarchical refiners with accented leaf labels in #4966 @kasperbolarsen
  • feat: improve single-select hierarchical refiner UX in #4967 @kasperbolarsen
  • feat: add suggestion provider context API in #4969 @wobba
  • Fix document Details metadata panel in #4971 @kasperbolarsen
  • New Contributors
  • @jeppesc11 made their first contribution in #4948
  • Full Changelog: 4.24.0...4.25.0

Full release notes on GitHub →

What's changed

  • Fix #4854: Static person template works in both single and multi select mode in #4861 @kasperbolarsen
  • Fix taxonomy filter labels with umlauts in #4864 @kasperbolarsen
  • Cap refiners in edit mode in #4865 @kasperbolarsen
  • Add Kasper to the property pane author list in #4867 @kasperbolarsen
  • perf: skip loading unused extensibility libraries in #4871 @wobba
  • chore(release): bump version to 4.23.3 in #4873 @wobba
  • Add Microsoft Search schema discovery and field normalization in #4880 @kasperbolarsen
  • Add selected-item details action across built-in result layouts in #4884 @kasperbolarsen
  • Fix filter labels for encoded and CHCM refiners (#4882) in #4886 @kasperbolarsen
  • docs: document details action in search result layouts in #4887 @kasperbolarsen
  • fix: align Microsoft Search date filters with Graph field names in #4888 @kasperbolarsen
  • Fix formatting and HTML issues in documentation in #4858 @LeonArmston
  • Fix refiner labels with hyphen suffix in #4892 @estruyf
  • Improve performance of checkbox filter component rendering in #4894 @estruyf
  • Add multi-item edit support to search results in #4899 @kasperbolarsen
  • fix: restore people template display names in #4900 @kasperbolarsen
  • fix: hide raw taxonomy refiner buckets without localization in #4905 @kasperbolarsen
  • Added extensibility support into the filter web part in #4895 @estruyf
  • Fix multi-select Details errors when comparing list items in #4908 @kasperbolarsen
  • fix(details): hide duplicate taxonomy labels in multi-edit pane in #4909 @kasperbolarsen
  • Fix People/Checkbox refiner labels to prefer display name over UPN in #4911 @kasperbolarsen
  • Fix People refiner pills showing UPN instead of display name in #4912 @kasperbolarsen
  • Fix People template labels and vertical filter operators in #4916 @kasperbolarsen
  • chore(deps): bump dompurify to 3.4.13 in #4918 @wobba
  • perf: cache external layout templates in #4919 @wobba

Full release notes on GitHub →

What's changed

  • fix: Group-by title not visible in dark theme (#4721) in #4732 @wobba
  • fix: Search Box disappears intermittently on page load (#4719) in #4734 @wobba
  • fix: ExternalItem + Result Types causes API error (#4722) in #4733 @wobba
  • fix: add missing translations for Hierarchical Filter in multiple languages in #4736 @kasperbolarsen
  • Fix: Missing pt-BR translation for sort dropdown (undefined label) in #4730 @felpslima
  • docs: update extensibility guide for Heft toolchain (SPFx v1.22+) in #4738 @wobba
  • feat: add bidirectional connection warning for filter and results web parts in #4746 @wobba
  • feat: full moment.js format-token compatibility via dayjs plugins in #4742 @kasperbolarsen
  • Fix panel filter events by preserving instanceId in #4744 @datindy
  • Add column header tooltips to the Details List layout in #4748 @datindy
  • Fix slider regressions on develop in #4749 @kasperbolarsen
  • Add built-in string hex template helpers in #4750 @kasperbolarsen
  • Wire hierarchical filters into layouts in #4759 @kasperbolarsen
  • Add hierarchical filter node visibility settings in #4760 @kasperbolarsen
  • Fix taxonomy filter GUID parsing in #4763 @kasperbolarsen
  • Add Search Results title action link in #4766 @kasperbolarsen
  • Add three new PnP Modern Search scenario docs: More Info panel, clickable filter links, and document viewer page in #4774 @LeonArmston
  • Fix results web part vertical connection after provisioning (#4776) in #4777 @kasperbolarsen
  • Add documentation build requirements and guides in #4778 @kasperbolarsen
  • chore(deps): apply pending Dependabot bumps (fast-uri, fast-xml-builder, fast-xml-parser) in #4780 @wobba
  • 4752-Add search results paging information in the URL as a query string in #4765 @NTSS-MaximilienRAES
  • Fix #4741 (getDate 'X' broken) and #4772 (workbench toolbox missing webparts) in #4782 @wobba
  • 4.22.0 in #4783 @wobba
  • New Contributors
  • @felpslima made their first contribution in #4730

Full release notes on GitHub →

What's changed

  • Bump fast-xml-parser from 5.3.3 to 5.3.6 in /search-parts[bot] in #4656 @dependabot
  • Bump fast-xml-parser from 5.3.3 to 5.3.6 in /search-extensibility[bot] in #4657 @dependabot
  • chore: upgrade to SPFx 1.22.2 + dependency modernization in #4658 @wobba
  • fix: address security advisories — XSS, CSS injection, and DOMPurify hardening in #4659 @wobba
  • Bump immutable from 4.3.7 to 4.3.8 in /search-extensibility[bot] in #4672 @dependabot
  • Bump immutable from 4.3.7 to 4.3.8 in /search-parts[bot] in #4671 @dependabot
  • Bump svgo from 2.8.0 to 2.8.2 in /search-extensibility[bot] in #4669 @dependabot
  • Fix thumbnail URL construction in DataSourceHelper in #4666 @estruyf
  • Bump fast-xml-parser from 5.3.3 to 5.4.1 in /search-extensibility[bot] in #4665 @dependabot
  • Bump fast-xml-parser in /search-parts[bot] in #4667 @dependabot
  • Bump svgo from 2.8.0 to 2.8.2 in /search-parts in #4676 @wobba
  • fix: Audience targeting for web parts does not work in #4681 @wobba
  • fix: add missing closing brackets in localization files for cs-cz and nb-no in #4686 @kasperbolarsen
  • refactor: enhance SharePoint preview URL handling and add utility methods in #4687 @kasperbolarsen
  • fix: extensibility library loading race condition in #4697 @wobba
  • fix: use getMemberGroups for vertical audience targeting (#4675) in #4710 @wobba
  • fix: Ace editor cursor position offset in template dialog (#4706) in #4711 @wobba
  • fix: prevent duplicate search query notifications on page load (#4673) in #4712 @wobba
  • fix: reset regex lastIndex in replacePageTokens (#4707) in #4713 @wobba
  • fix: restore layout slot panel column layout and reduce title textarea height in #4715 @wobba
  • fix: apply slotTable class to all PropertyFieldCollectionData dialogs in #4720 @kasperbolarsen
  • Static hierarchical refinersv2 in #4723 @kasperbolarsen
  • v1.21.0 in #4727 @wobba
  • New Contributors
  • @estruyf made their first contribution in #4666

Full release notes on GitHub →

What's changed

  • Update SPFx to v1.22.1 for extensibility library in #4612 @jlacarelle
  • Custom layout documentation - add renderType property in #4615 @a1mery
  • fix: add null checks to prevent errors in ItemSelectionWebComponent and MicrosoftSearchDataSource in #4610 @kasperbolarsen
  • Add default title font option in #4627 @jblueml
  • Bump lodash-es from 4.17.22 to 4.17.23 in /search-parts[bot] in #4632 @dependabot
  • Bump tar and @microsoft/sp-build-web in /search-extensibility[bot] in #4637 @dependabot
  • Fix for Issue 4614 (Microsoft Search data source crashes for most entity types) in #4639 @kasperbolarsen
  • Refactor MicrosoftSearchDataSource: Improve entity type checks and update property initialization in #4640 @kasperbolarsen
  • Bump lodash-es from 4.17.22 to 4.17.23 in /search-parts in #4643 @wobba
  • Fix ZIP download: use AAD token for mediap oAuthToken in #4629 @ackbarar
  • Fix ZIP download: inject aadTokenProviderFactory into WebComponent context in #4633 @ackbarar
  • Fixed Sonar errors and warnings in MicrosoftSearchDataSource in #4644 @kasperbolarsen
  • Fix DatePicker scroll jump by preventing focus restore scroll in #4652 @mobun
  • chore: bump version to v4.20.0 in #4654 @wobba
  • v4.20 in #4655 @wobba
  • New Contributors
  • @jlacarelle made their first contribution in #4612
  • @ackbarar made their first contribution in #4629
  • Full Changelog: 4.19.1...4.20.0

Full release notes on GitHub →