From 5c7ba6e057071e7055f40e172de1693baf210ff9 Mon Sep 17 00:00:00 2001 From: "code-infra-renovate[bot]" <290386390+code-infra-renovate[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 06:18:21 +0000 Subject: [PATCH 1/5] Bump DocSearch to 5.0.1 --- .../src/AppLayout/components/AppSearch.tsx | 2 +- pnpm-lock.yaml | 201 +++++++++++++++--- pnpm-workspace.yaml | 2 +- 3 files changed, 172 insertions(+), 33 deletions(-) diff --git a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx index 2efa9851bc33f9..725a1712cdda15 100644 --- a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx +++ b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx @@ -221,7 +221,7 @@ export interface AppSearchProps { export function AppSearch(props: AppSearchProps) { useLazyCSS( - 'https://cdn.jsdelivr.net/npm/@docsearch/css@4.7.0/dist/style.min.css', + 'https://cdn.jsdelivr.net/npm/@docsearch/css@5.0.1/dist/style.min.css', '#app-search', { layer: 'docsearch' }, ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a9431e798d9b8..a6214bf1967470 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,8 +10,8 @@ catalogs: specifier: ^1.7.0 version: 1.7.0 '@docsearch/react': - specifier: ^4.7.0 - version: 4.7.0 + specifier: ^5.0.1 + version: 5.0.1 '@emotion/cache': specifier: ^11.14.0 version: 11.14.0 @@ -238,7 +238,7 @@ importers: version: 8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) vitest: specifier: ^4.1.0 - version: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) vitest-fail-on-console: specifier: 0.10.1 version: 0.10.1(@vitest/utils@4.1.10)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.10) @@ -259,7 +259,7 @@ importers: version: 1.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@docsearch/react': specifier: catalog:docs - version: 4.7.0(@algolia/client-search@5.56.0)(@types/react@19.2.18)(algoliasearch@5.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3) + version: 5.0.1(@algolia/client-search@5.56.0)(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3) '@emotion/cache': specifier: catalog:docs version: 11.14.0 @@ -409,7 +409,7 @@ importers: version: 5.3.7(@mui/material@packages+mui-material+build)(@types/react@19.2.18)(react@19.2.8) next: specifier: 16.3.1 - version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) notistack: specifier: 3.0.2 version: 3.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) @@ -683,7 +683,7 @@ importers: version: 1.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@docsearch/react': specifier: catalog:docs - version: 4.7.0(@algolia/client-search@5.56.0)(@types/react@19.2.18)(algoliasearch@5.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3) + version: 5.0.1(@algolia/client-search@5.56.0)(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3) '@emotion/cache': specifier: catalog:docs version: 11.14.0 @@ -698,7 +698,7 @@ importers: version: link:../markdown '@mui/material-nextjs': specifier: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^9.0.0 || ^9.0.0-alpha || ^9.0.0-beta - version: 9.3.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.2.8)(supports-color@11.0.0))(@emotion/server@11.11.0(@emotion/css@11.13.5(supports-color@11.0.0)))(@types/react@19.2.18)(next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8) + version: 9.3.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.2.8)(supports-color@11.0.0))(@emotion/server@11.11.0(@emotion/css@11.13.5(supports-color@11.0.0)))(@types/react@19.2.18)(next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8) '@mui/stylis-plugin-rtl': specifier: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^9.0.0 || ^9.0.0-alpha || ^9.0.0-beta version: 9.3.0(stylis@4.2.0) @@ -783,7 +783,7 @@ importers: version: 19.2.4(@types/react@19.2.18) next: specifier: 16.3.1 - version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) publishDirectory: build packages-internal/docs-utils: @@ -1150,7 +1150,7 @@ importers: version: 19.2.18 next: specifier: 16.3.1 - version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: specifier: 19.2.8 version: 19.2.8 @@ -1547,6 +1547,32 @@ importers: packages: + '@ai-sdk/gateway@2.0.134': + resolution: {integrity: sha512-n+dVco86tzsoQ5Lq8YI62ALsNQw37P5jJa/1NuzCtezfZCzH1UfgDWE3EZ0U1U3rqHlHFWV1N8D3QD5KBY9myg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@3.0.32': + resolution: {integrity: sha512-izgUo50kamJMwoYCXoFwVccuJeyYp0y1+twf0FfpEz7kdQBloZLZbgLYUOUpannLWrV7xYSJR48BQJIQFbFiAQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@2.0.3': + resolution: {integrity: sha512-h88OPkavHTiN9tMn2l5awAznGB0lXzjcLhgR1/rvjB2zlLprsNxbM2tt6OJsHUxduLC3klq0/eqaSf6fX5XVww==} + engines: {node: '>=18'} + + '@ai-sdk/react@2.0.240': + resolution: {integrity: sha512-jUrJECM6+PAiWsBqYeTfMr4mk82ms+5jH6o+j5NkCvrk1+dyTG2SMQVCJ3ICglfKZqgTEGnMU8dVIP7qHy6nhA==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 + zod: ^3.25.76 || ^4.1.8 + peerDependenciesMeta: + zod: + optional: true + '@algolia/abtesting@1.22.0': resolution: {integrity: sha512-BFR6zNowNKcY7Ou7TaJc9QWexES4YKPbmf/OTFofpdsdhz4x6q0lbxp3duO0EHnyrN7rE4ba/TSXuY+BDGu4+g==} engines: {node: '>= 14.0.0'} @@ -2400,8 +2426,8 @@ packages: resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} - '@docsearch/core@4.7.0': - resolution: {integrity: sha512-p/9xVKmPDj3FPvMfPf5naVO3Ej8SCbcUugGvx1+8GgkuBNbqxqN2Irx3WLBv8VY0jH7XpRwKWdlmjXLZsmTLsg==} + '@docsearch/core@5.0.1': + resolution: {integrity: sha512-2iQ8m9eqGhiSvxt+CotLLqCNxE36K3ks0ALXiirTdr09HKBzt2RKi+m9bMA911rXxWO2NCq9Ug8LJxCCB3XmNQ==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' react: '>= 16.8.0 < 20.0.0' @@ -2414,11 +2440,11 @@ packages: react-dom: optional: true - '@docsearch/css@4.7.0': - resolution: {integrity: sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==} + '@docsearch/css@5.0.1': + resolution: {integrity: sha512-q1HdKMkROnZIIN+/eSa2f6qtIn9VcBtXelVMScFuWTWPQwIMBt0evl/TJku0HsssMJkuT6jKzY6Yfet/RMG2Tg==} - '@docsearch/react@4.7.0': - resolution: {integrity: sha512-x6oedjJ8O8/pIDBsMo5Orca3/6cQCz616/CwthVe68l43mqnj2lrJ9kFQITBqy8hMsS3nWeBWFoVO5dJ1DCFKA==} + '@docsearch/react@5.0.1': + resolution: {integrity: sha512-0gP+NZxQDNltW72LQiqTjmKMf0lffOY7UJndll8js9zhRvgfucs7iGaBJyQdP/wZL+4jeUskjyWspjSO1KbVbg==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' react: '>= 16.8.0 < 20.0.0' @@ -2755,6 +2781,10 @@ packages: '@fast-csv/parse@5.0.7': resolution: {integrity: sha512-MeuDeQj0DVmIGWky8STaKtvj232Gpq8kjrOGplHJ99Os7OO5CetVfXvUGqX/3GHYFOUsz6FK8isWtDY2XTFNWw==} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + '@fingerprintjs/fingerprintjs@3.4.2': resolution: {integrity: sha512-3Ncze6JsJpB7BpYhqIgvBpfvEX1jsEKrad5hQBpyRQxtoAp6hx3+R46zqfsuQG4D9egQZ+xftQ0u4LPFMB7Wmg==} @@ -4376,6 +4406,10 @@ packages: '@octokit/types@17.0.0': resolution: {integrity: sha512-ByP1v7YL5SMveFPP7+sj0/ZuWCOOg/Chs4NafOMpq6WNIM/hdGY0S7C0TCGDBWu1aGmOxmUIhMx3cO+IdwYZ1Q==} + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + '@oxc-project/types@0.144.0': resolution: {integrity: sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==} @@ -5286,6 +5320,10 @@ packages: cpu: [x64] os: [win32] + '@vercel/oidc@3.1.0': + resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} + engines: {node: '>= 20'} + '@vitejs/plugin-react@6.0.5': resolution: {integrity: sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5479,6 +5517,12 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ai@5.0.237: + resolution: {integrity: sha512-vhUJTINUVbmXA4djxDPeYXSmAkzF/dkixHzdCvaCyD+mDsWLemvokt+KWmfkdDwv4Htt2iCScFuB23lP30XALg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -6870,6 +6914,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.1.1: + resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==} + engines: {node: '>=18.0.0'} + execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -7911,6 +7959,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -8357,6 +8408,11 @@ packages: peerDependencies: marked: '>=1 <16' + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + marked@18.0.9: resolution: {integrity: sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==} engines: {node: '>= 20'} @@ -10421,6 +10477,11 @@ packages: engines: {node: '>=16'} hasBin: true + swr@2.5.1: + resolution: {integrity: sha512-BRw55e8r0B7SpDN20CAzoQAHl7y1yP7/Zt7oqUjMv0vSt2u2Xnkm88Ws+VypbV9BXHQVuSuyVq7zMjO16wSExw==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -10466,6 +10527,10 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + throttleit@2.1.0: + resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} + engines: {node: '>=18'} + through2@0.4.2: resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==} @@ -10664,6 +10729,10 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + undici@6.28.0: resolution: {integrity: sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==} engines: {node: '>=18.17'} @@ -11211,6 +11280,35 @@ packages: snapshots: + '@ai-sdk/gateway@2.0.134(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.32(zod@4.4.3) + '@vercel/oidc': 3.1.0 + zod: 4.4.3 + + '@ai-sdk/provider-utils@3.0.32(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + undici: 5.29.0 + zod: 4.4.3 + + '@ai-sdk/provider@2.0.3': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/react@2.0.240(react@19.2.8)(zod@4.4.3)': + dependencies: + '@ai-sdk/provider-utils': 3.0.32(zod@4.4.3) + ai: 5.0.237(zod@4.4.3) + react: 19.2.8 + swr: 2.5.1(react@19.2.8) + throttleit: 2.1.0 + optionalDependencies: + zod: 4.4.3 + '@algolia/abtesting@1.22.0': dependencies: '@algolia/client-common': 5.56.0 @@ -12301,19 +12399,25 @@ snapshots: '@discoveryjs/json-ext@0.6.3': {} - '@docsearch/core@4.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@docsearch/core@5.0.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': optionalDependencies: '@types/react': 19.2.18 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@docsearch/css@4.7.0': {} + '@docsearch/css@5.0.1': {} - '@docsearch/react@4.7.0(@algolia/client-search@5.56.0)(@types/react@19.2.18)(algoliasearch@5.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)': + '@docsearch/react@5.0.1(@algolia/client-search@5.56.0)(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)': dependencies: + '@ai-sdk/react': 2.0.240(react@19.2.8)(zod@4.4.3) '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.3) - '@docsearch/core': 4.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@docsearch/css': 4.7.0 + '@base-ui/react': 1.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@docsearch/core': 5.0.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@docsearch/css': 5.0.1 + ai: 5.0.237(zod@4.4.3) + algoliasearch: 5.56.0 + marked: 16.4.2 + zod: 4.4.3 optionalDependencies: '@types/react': 19.2.18 react: 19.2.8 @@ -12321,7 +12425,8 @@ snapshots: search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - - algoliasearch + - '@date-fns/tz' + - date-fns '@emnapi/core@1.10.0': dependencies: @@ -12602,6 +12707,8 @@ snapshots: lodash.groupby: 4.6.0 lodash.uniq: 4.5.0 + '@fastify/busboy@2.1.1': {} + '@fingerprintjs/fingerprintjs@3.4.2': dependencies: tslib: 2.8.1 @@ -13234,11 +13341,11 @@ snapshots: - vite - vitest - '@mui/material-nextjs@9.3.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.2.8)(supports-color@11.0.0))(@emotion/server@11.11.0(@emotion/css@11.13.5(supports-color@11.0.0)))(@types/react@19.2.18)(next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)': + '@mui/material-nextjs@9.3.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.2.8)(supports-color@11.0.0))(@emotion/server@11.11.0(@emotion/css@11.13.5(supports-color@11.0.0)))(@types/react@19.2.18)(next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)': dependencies: '@babel/runtime': 7.29.7 '@emotion/react': 11.14.0(@types/react@19.2.18)(react@19.2.8)(supports-color@11.0.0) - next: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + next: 16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: 19.2.8 optionalDependencies: '@emotion/cache': 11.14.0 @@ -14326,6 +14433,8 @@ snapshots: dependencies: '@octokit/openapi-types': 28.0.0 + '@opentelemetry/api@1.9.0': {} + '@oxc-project/types@0.144.0': {} '@pigment-css/react@0.0.31(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@11.0.0)(typescript@6.0.3)': @@ -15180,6 +15289,8 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true + '@vercel/oidc@3.1.0': {} + '@vitejs/plugin-react@6.0.5(babel-plugin-react-compiler@1.0.0)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 @@ -15193,7 +15304,7 @@ snapshots: '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) playwright: 1.62.1 tinyrainbow: 3.1.1 - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) transitivePeerDependencies: - bufferutil - msw @@ -15209,7 +15320,7 @@ snapshots: pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.1 - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) ws: 8.21.3 transitivePeerDependencies: - bufferutil @@ -15229,7 +15340,7 @@ snapshots: obug: 2.1.4 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) optionalDependencies: '@vitest/browser': 4.1.10(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.10) @@ -15241,7 +15352,7 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)(typescript@6.0.3) typescript: 6.0.3 - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) transitivePeerDependencies: - supports-color @@ -15446,6 +15557,14 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ai@5.0.237(zod@4.4.3): + dependencies: + '@ai-sdk/gateway': 2.0.134(zod@4.4.3) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.32(zod@4.4.3) + '@opentelemetry/api': 1.9.0 + zod: 4.4.3 + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -17073,6 +17192,8 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.1.1: {} + execa@1.0.0: dependencies: cross-spawn: 6.0.6 @@ -17707,7 +17828,7 @@ snapshots: semver: 7.8.5 optionalDependencies: '@vitest/expect': 4.1.10 - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) html-void-elements@3.0.0: {} @@ -18194,6 +18315,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-schema@0.4.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-nice@1.1.4: {} @@ -18689,6 +18812,8 @@ snapshots: node-emoji: 2.2.0 supports-hyperlinks: 3.2.0 + marked@16.4.2: {} + marked@18.0.9: {} marked@9.1.6: {} @@ -19330,7 +19455,7 @@ snapshots: neo-async@2.6.2: {} - next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + next@16.3.1(@babel/core@7.29.7(supports-color@11.0.0))(@opentelemetry/api@1.9.0)(@playwright/test@1.62.1)(@types/node@20.19.43)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: '@next/env': 16.3.1 '@swc/helpers': 0.5.23 @@ -19349,6 +19474,7 @@ snapshots: '@next/swc-linux-x64-musl': 16.3.1 '@next/swc-win32-arm64-msvc': 16.3.1 '@next/swc-win32-x64-msvc': 16.3.1 + '@opentelemetry/api': 1.9.0 '@playwright/test': 1.62.1 babel-plugin-react-compiler: 1.0.0 sharp: 0.35.3(@types/node@20.19.43) @@ -21561,6 +21687,12 @@ snapshots: picocolors: 1.1.1 sax: 1.6.1 + swr@2.5.1(react@19.2.8): + dependencies: + dequal: 2.0.3 + react: 19.2.8 + use-sync-external-store: 1.6.0(react@19.2.8) + symbol-tree@3.2.4: {} synckit@0.11.13: @@ -21614,6 +21746,8 @@ snapshots: dependencies: any-promise: 1.3.0 + throttleit@2.1.0: {} + through2@0.4.2: dependencies: readable-stream: 1.0.34 @@ -21802,6 +21936,10 @@ snapshots: undici-types@6.21.0: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + undici@6.28.0: {} undici@7.29.0: {} @@ -22062,9 +22200,9 @@ snapshots: '@vitest/utils': 4.1.10 chalk: 5.6.2 vite: 8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vitest: 4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vitest@4.1.10(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + vitest@4.1.10(@opentelemetry/api@1.9.0)(@types/node@20.19.43)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(happy-dom@20.11.2)(jsdom@30.0.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.10 '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) @@ -22087,6 +22225,7 @@ snapshots: vite: 8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 20.19.43 '@vitest/browser-playwright': 4.1.10(playwright@1.62.1)(vite@8.2.1(@types/node@20.19.43)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.10) '@vitest/coverage-v8': 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 24558faf559537..01cf5a14f16673 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -36,7 +36,7 @@ catalogs: docs: stylis: '4.2.0' '@base-ui/react': '^1.7.0' - '@docsearch/react': '^4.7.0' + '@docsearch/react': '^5.0.1' '@emotion/cache': '^11.14.0' '@emotion/react': '^11.14.0' '@emotion/server': '^11.11.0' From fd68a76e1c07dca2c7002067b7eca55b6229f0b1 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 20 Aug 2026 10:49:33 +0300 Subject: [PATCH 2/5] [docs] Adapt AppSearch to the DocSearch v5 API DocSearch v5 replaces `indexName` and `searchParameters` with an `indices` array, drops `onAskAiToggle` from the keyword-only modal, and ships an ESM-only entry point. See https://docsearch.algolia.com/docs/migrating-from-v4/. - Move the index name and the search parameters into `indices`. Add `hierarchy.lvl6` to `attributesToRetrieve`, because v5 builds the hit breadcrumbs from the full hierarchy. - Remove `onAskAiToggle` from ``. The keyword-only modal no longer accepts it. `useDocSearchKeyboardEvents` still requires it. - Add `@docsearch/react` to `transpilePackages`. Next externalizes the ESM package for SSR, and its CJS `@algolia/autocomplete-core` dependency then breaks named-export interop. - Keep the hit title and the hit path on one line. v5 wraps them below 768px, which turns the compact rows into multi-line cards. - Refresh the override comments that named v4. Co-Authored-By: Claude Opus 5 --- docs/next.config.ts | 3 + .../src/AppLayout/components/AppSearch.tsx | 93 ++++++++++--------- 2 files changed, 52 insertions(+), 44 deletions(-) diff --git a/docs/next.config.ts b/docs/next.config.ts index e90ec8085a7a44..7f03ab86464032 100644 --- a/docs/next.config.ts +++ b/docs/next.config.ts @@ -265,6 +265,9 @@ export default withDocsInfra({ // falls back to the pnpm symlink (→ `packages/mui-material/build/`), which // is empty unless the package has been built. transpilePackages: [ + // ESM-only, and its CJS `@algolia/autocomplete-core` dependency breaks + // named-export interop when Next externalizes it for SSR. + '@docsearch/react', '@mui/x-charts', '@mui/x-data-grid', '@mui/x-data-grid-pro', diff --git a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx index 725a1712cdda15..6166b7a1e6a70d 100644 --- a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx +++ b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx @@ -260,8 +260,8 @@ export function AppSearch(props: AppSearchProps) { setInitialQuery(undefined); }, [setIsOpen, setInitialQuery]); - // v4's useDocSearchKeyboardEvents no longer opens the modal when the user types on the - // focused search button (onInput/searchButtonRef are deprecated no-ops), so restore it here. + // useDocSearchKeyboardEvents no longer opens the modal when the user types on the focused + // search button (onInput/searchButtonRef are deprecated no-ops), so restore it here. const handleSearchButtonKeyDown = React.useCallback( (event: React.KeyboardEvent) => { if (/^[a-zA-Z0-9]$/.test(event.key) && !event.metaKey && !event.ctrlKey && !event.altKey) { @@ -306,8 +306,8 @@ export function AppSearch(props: AppSearchProps) { }; // Host the start screen inside the dropdown so recent searches and the product links share - // one fixed-height scroll container (as in v3) instead of stacking and growing the modal. - // v4 only renders the dropdown when it has content, so fall back to the modal. + // one fixed-height scroll container instead of stacking and growing the modal. + // DocSearch only renders the dropdown when it has content, so fall back to the modal. const setup = () => { const parent = document.querySelector('.DocSearch-Dropdown') ?? @@ -369,29 +369,34 @@ export function AppSearch(props: AppSearchProps) { initialQuery={initialQuery} appId="TZGZ85B9TB" apiKey="8177dfb3e2be72b241ffb8c5abafa899" - indexName={process.env.SEARCH_INDEX!} - searchParameters={{ - facetFilters: ['version:master', facetFilterLanguage], - filters, - optionalFilters, - attributesToRetrieve: [ - // Copied from https://github.com/algolia/docsearch/blob/ce0c865cd8767e961ce3088b3155fc982d4c2e2e/packages/docsearch-react/src/DocSearchModal.tsx#L231 - 'hierarchy.lvl0', - 'hierarchy.lvl1', - 'hierarchy.lvl2', - 'hierarchy.lvl3', - 'hierarchy.lvl4', - 'hierarchy.lvl5', - 'content', - 'type', - 'url', - // Extra - 'productId', - 'productCategoryId', - ], - analyticsTags: [facetFilterLanguage, `product:${pageContext.productId}`], - hitsPerPage: 40, - }} + indices={[ + { + name: process.env.SEARCH_INDEX!, + searchParameters: { + facetFilters: ['version:master', facetFilterLanguage], + filters, + optionalFilters, + attributesToRetrieve: [ + // Copied from https://github.com/algolia/docsearch/blob/c82dad7f39b381bcd8bf279bda1e9360c80151a6/packages/docsearch-react/src/utils/createDocSearchSources.ts + 'hierarchy.lvl0', + 'hierarchy.lvl1', + 'hierarchy.lvl2', + 'hierarchy.lvl3', + 'hierarchy.lvl4', + 'hierarchy.lvl5', + 'hierarchy.lvl6', + 'content', + 'type', + 'url', + // Extra + 'productId', + 'productCategoryId', + ], + analyticsTags: [facetFilterLanguage, `product:${pageContext.productId}`], + hitsPerPage: 40, + }, + }, + ]} placeholder={`${t('algoliaSearch')}`} transformItems={(items) => { return items.map((item) => { @@ -415,8 +420,6 @@ export function AppSearch(props: AppSearchProps) { hitComponent={DocSearchHit} initialScrollY={typeof window !== 'undefined' ? window.scrollY : 0} onClose={onClose} - // MUI docs don't use the Ask AI feature. - onAskAiToggle={noop} navigator={keyboardNavigator} />, document.body, @@ -431,7 +434,7 @@ export function AppSearch(props: AppSearchProps) { '--docsearch-highlight-color': (theme.vars || theme).palette.primary[600], '--docsearch-text-color': (theme.vars || theme).palette.text.primary, '--docsearch-muted-color': (theme.vars || theme).palette.grey[600], - // Keep the v4 muted icons/text (hit icon, no-results text, idle magnifier, screen + // Keep the muted icons/text (hit icon, no-results text, idle magnifier, screen // icons) on MUI's muted grey instead of Algolia's default purple-grey. '--docsearch-secondary-text-color': 'var(--docsearch-muted-color)', '--docsearch-icon-color': 'var(--docsearch-muted-color)', @@ -445,8 +448,8 @@ export function AppSearch(props: AppSearchProps) { '--docsearch-footer-background': 'unset', '--docsearch-modal-background': (theme.vars || theme).palette.background.paper, '--docsearch-hit-height': '52px', - // Height left for the scrollable area between the search bar and the footer. v4 - // dropped the search box from its own budget, which makes the modal overshoot + // Height left for the scrollable area between the search bar and the footer. + // DocSearch drops the search box from its own budget, which makes the modal overshoot // --docsearch-modal-height; subtract it again so the modal stays 600px. '--muidocs-docsearch-content-max-height': 'calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))', @@ -547,10 +550,10 @@ export function AppSearch(props: AppSearchProps) { padding: theme.spacing(0.5, 1), }, '& .DocSearch-Form': { - // v4 form defaults to 12px 16px; drop the right padding so the "esc" chip sits - // near the edge (v3 rendered the close button outside the form). + // The form defaults to 12px 16px; drop the right padding so the "esc" chip sits + // near the edge. padding: theme.spacing(1.5, 0, 1.5, 1.5), - // v4 adds a form border-bottom; remove it as the divider lives on the search bar. + // Remove the form border-bottom as the divider lives on the search bar. borderBottom: 'none', '& .DocSearch-Clear': { display: 'none', @@ -569,7 +572,7 @@ export function AppSearch(props: AppSearchProps) { visibility: 'hidden', }, }, - // v4 adds a vertical divider before the close button; match the search bar borders. + // Match the vertical divider before the close button to the search bar borders. '& .DocSearch-Divider': { borderColor: (theme.vars || theme).palette.grey[200], }, @@ -585,7 +588,7 @@ export function AppSearch(props: AppSearchProps) { backgroundColor: (theme.vars || theme).palette.grey[50], border: '1px solid', borderColor: (theme.vars || theme).palette.grey[200], - // v4's close button renders an X icon; hide it so only the "esc" chip shows. + // The close button renders an X icon; hide it so only the "esc" chip shows. '& svg': { display: 'none', }, @@ -598,7 +601,7 @@ export function AppSearch(props: AppSearchProps) { }, }, '& .DocSearch-Dropdown': { - // v4 fixes the dropdown to 60dvh; make it fit its content instead so recent + // DocSearch fixes the dropdown to 60dvh; make it fit its content instead so recent // searches stay compact and don't leave a gap above the product links. height: 'auto', maxHeight: 'var(--muidocs-docsearch-content-max-height)', @@ -613,7 +616,7 @@ export function AppSearch(props: AppSearchProps) { marginTop: theme.spacing(1), }, }, - // The v4 screen icon (no-results / empty state) hardcodes an inline stroke="#5a5e9a" + // The screen icon (no-results / empty state) hardcodes an inline stroke="#5a5e9a" // that no variable can reach; recolor it to the MUI muted grey. '& .DocSearch-Screen-Icon svg': { stroke: 'var(--docsearch-muted-color)', @@ -665,14 +668,16 @@ export function AppSearch(props: AppSearchProps) { fontSize: theme.typography.pxToRem(14), fontWeight: theme.typography.fontWeightMedium, color: (theme.vars || theme).palette.text.primary, - // Algolia sets text-overflow on the flex container, where it can never apply, so long - // snippets get clipped mid-word. Truncate on the items instead. + // DocSearch wraps the title and the path below 768px; keep them on one line so the + // rows stay the compact fixed-height cards the docs design expects. + whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', }, '& .DocSearch-Hit-path': { fontSize: theme.typography.pxToRem(12), color: (theme.vars || theme).palette.text.secondary, + whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', }, @@ -691,9 +696,9 @@ export function AppSearch(props: AppSearchProps) { backgroundColor: (theme.vars || theme).palette.primary[50], borderColor: (theme.vars || theme).palette.primary[300], }, - // v4 tints the selected icon/action/mark with the muted --docsearch-highlight-color; - // restore the brighter active color, and extend it to the tree connector so it matches - // the icon instead of staying grey. + // DocSearch tints the selected icon/action/mark with the muted + // --docsearch-highlight-color; restore the brighter active color, and extend it to the + // tree connector so it matches the icon instead of staying grey. '& .DocSearch-Hit[aria-selected="true"] .DocSearch-Hit-icon, & .DocSearch-Hit[aria-selected="true"] .DocSearch-Hit-action, & .DocSearch-Hit[aria-selected="true"] .DocSearch-Hit-Tree, & .DocSearch-Hit[aria-selected="true"] mark': { color: 'var(--docsearch-hit-active-color)', From 296f95e5001317cd0d5eaff3a7249676456c5840 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 20 Aug 2026 12:18:02 +0300 Subject: [PATCH 3/5] [docs] Align the DocSearch result cards with the section headings v5 adds `.DocSearch-Dropdown-Container .DocSearch-Hits-padded { padding-inline-start: 1em }`, which indents the result cards but not the section headings above them. Reset the padding to keep both flush, as in v4. Co-Authored-By: Claude Opus 5 --- .../core-docs/src/AppLayout/components/AppSearch.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx index 6166b7a1e6a70d..f79830a232dcf3 100644 --- a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx +++ b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx @@ -622,6 +622,11 @@ export function AppSearch(props: AppSearchProps) { stroke: 'var(--docsearch-muted-color)', }, '& .DocSearch-Dropdown-Container': { + // DocSearch indents the hit lists by 1em, which pushes the result cards out of line + // with the section headings above them. + '& .DocSearch-Hits-padded': { + paddingInlineStart: 0, + }, '& .DocSearch-Hits:first-of-type': { '& .DocSearch-Hit-source': { paddingTop: theme.spacing(2.5), From 3f414f5d8b26fb79b2dfe8f52eac9850208fd216 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 20 Aug 2026 16:46:08 +0300 Subject: [PATCH 4/5] [docs] Keep the docs typeface in the DocSearch modal v5 adds `--docsearch-font-family` and applies it to `.DocSearch-Modal`, so the modal switched from the docs typeface to a system font stack. v4 had no such variable and inherited the page font. The metrics differ enough to matter: the underline the stylesheet draws under matched text moved down past the `overflow: hidden` clip on `.DocSearch-Hit-title`, so the highlight lost its underline. Setting the variable to `inherit` restores both the typeface and the v4 geometry. Co-Authored-By: Claude Opus 5 --- .../core-docs/src/AppLayout/components/AppSearch.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx index f79830a232dcf3..d00f2d7e0698d6 100644 --- a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx +++ b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx @@ -447,6 +447,9 @@ export function AppSearch(props: AppSearchProps) { '--docsearch-searchbox-focus-background': 'unset', '--docsearch-footer-background': 'unset', '--docsearch-modal-background': (theme.vars || theme).palette.background.paper, + // v5 forces a system font stack on the modal. Keep the docs typeface: the + // different metrics also push the hit title underline past its overflow clip. + '--docsearch-font-family': 'inherit', '--docsearch-hit-height': '52px', // Height left for the scrollable area between the search bar and the footer. // DocSearch drops the search box from its own budget, which makes the modal overshoot From 6901b1783fa1e8ce302ae549b8ce451e330cac8c Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 24 Aug 2026 12:56:31 +0300 Subject: [PATCH 5/5] [docs] Keep the hit title underline inside its overflow clip `.DocSearch-Hit-title` clips its overflow so the row stays one line, and DocSearch underlines matched text 0.3em below the baseline. At the 14px title that lands 0.5px inside the clip, so whether the browser paints it comes down to how a half pixel rounds, which changes with zoom and device pixel ratio. The 12px path has roughly three times the room and never lost it. Pull the underline closer: 4.2px to 1.96px of offset, 0.5px to 2.74px of room, with no layout change. The typeface fix before this restored the v4 geometry; this removes the sub-pixel margin that made it fragile in v4 too. Co-Authored-By: Claude Opus 5 --- .../core-docs/src/AppLayout/components/AppSearch.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx index d00f2d7e0698d6..45a80ebd3f100f 100644 --- a/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx +++ b/packages-internal/core-docs/src/AppLayout/components/AppSearch.tsx @@ -689,6 +689,12 @@ export function AppSearch(props: AppSearchProps) { overflow: 'hidden', textOverflow: 'ellipsis', }, + // DocSearch underlines matched text 0.3em below the baseline, which at the 14px + // hit title falls outside the overflow clip above and disappears at some zoom + // levels. Pull it closer; the 12px path has room either way. + '& .DocSearch-Hit mark': { + textUnderlineOffset: '0.14em', + }, '& .DocSearch-Hit-icon': { '> svg': { height: '16px',