diff --git a/package.json b/package.json
index dab514f61b14..e94f5f07f653 100644
--- a/package.json
+++ b/package.json
@@ -86,7 +86,7 @@
"@types/react": "^19.2.14",
"@types/semver": "^7.7.1",
"@types/shelljs": "^0.8.12",
- "@vitejs/plugin-react": "^5.0.0",
+ "@vitejs/plugin-react": "^6.0.2",
"@vitest/eslint-plugin": "^1.6.17",
"cross-env": "^10.1.0",
"cspell": "^8.18.1",
diff --git a/packages/create-docusaurus/bin/index.js b/packages/create-docusaurus/bin/index.js
index 919043d10afc..293c222e37ab 100755
--- a/packages/create-docusaurus/bin/index.js
+++ b/packages/create-docusaurus/bin/index.js
@@ -15,7 +15,7 @@ import {logger} from '@docusaurus/logger';
import semver from 'semver';
import {program} from 'commander';
-const packageJson = /** @type {import("../package.json")} */ (
+const packageJson = /** @type {typeof import("../package.json")} */ (
createRequire(import.meta.url)('../package.json')
);
const requiredVersion = packageJson.engines.node;
diff --git a/packages/docusaurus-theme-common/src/components/Details/__tests__/index.test.tsx b/packages/docusaurus-theme-common/src/components/Details/__tests__/index.test.tsx
new file mode 100644
index 000000000000..18dd2d150b4d
--- /dev/null
+++ b/packages/docusaurus-theme-common/src/components/Details/__tests__/index.test.tsx
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+// @vitest-environment jsdom
+import {describe, expect, it, vi} from 'vitest';
+import React from 'react';
+import {render, act, fireEvent} from '@testing-library/react';
+import {Details} from '../index';
+
+function renderDetails(props: {open?: boolean} = {}) {
+ const {container} = render(
+
+ the content
+ ,
+ );
+ return container.querySelector('details')!;
+}
+
+// jsdom doesn't fire the native toggle event on open changes: simulate the
+// browser behavior manually
+function setOpenExternally(details: HTMLDetailsElement, open: boolean) {
+ act(() => {
+ details.open = open;
+ details.dispatchEvent(new Event('toggle'));
+ });
+}
+
+describe('Details', () => {
+ // Fix jsdom not implementing matchMedia()
+ // See https://github.com/jsdom/jsdom/issues/3522
+ // Used through Details > Collapsible > getAutoHeightDuration()
+ vi.stubGlobal('matchMedia', () => {
+ return {matches: true};
+ });
+
+ it('renders collapsed by default', () => {
+ const details = renderDetails();
+ expect(details.open).toBe(false);
+ expect(details.dataset.collapsed).toBe('true');
+ });
+
+ it('renders expanded with open prop', () => {
+ const details = renderDetails({open: true});
+ expect(details.open).toBe(true);
+ expect(details.dataset.collapsed).toBe('false');
+ });
+
+ it('expands when clicking the summary', () => {
+ const details = renderDetails();
+ fireEvent.click(details.querySelector('summary')!);
+ expect(details.open).toBe(true);
+ expect(details.dataset.collapsed).toBe('false');
+ });
+
+ it('expands when the open attribute is set externally', () => {
+ // See https://github.com/facebook/docusaurus/issues/10140
+ const details = renderDetails();
+ setOpenExternally(details, true);
+ expect(details.open).toBe(true);
+ expect(details.dataset.collapsed).toBe('false');
+ });
+
+ it('collapses when the open attribute is removed externally', () => {
+ const details = renderDetails({open: true});
+ setOpenExternally(details, false);
+ expect(details.open).toBe(false);
+ expect(details.dataset.collapsed).toBe('true');
+ });
+});
diff --git a/packages/docusaurus-theme-common/src/components/Details/index.tsx b/packages/docusaurus-theme-common/src/components/Details/index.tsx
index 4a58984472b3..cb52c63e1049 100644
--- a/packages/docusaurus-theme-common/src/components/Details/index.tsx
+++ b/packages/docusaurus-theme-common/src/components/Details/index.tsx
@@ -103,6 +103,16 @@ export function Details({
// Don't do this, it breaks close animation!
// setOpen(false);
}
+ }}
+ onToggle={(e) => {
+ // The toggle event also fires when React syncs the open attribute
+ // See https://github.com/facebook/docusaurus/pull/12277
+ const isOpen = e.currentTarget.open;
+ if (isOpen === !collapsed) {
+ return;
+ }
+ setCollapsed(!isOpen);
+ setOpen(isOpen);
}}>
{summaryElement}
diff --git a/packages/docusaurus-theme-translations/locales/pl/theme-live-codeblock.json b/packages/docusaurus-theme-translations/locales/pl/theme-live-codeblock.json
index 56cabe42bf7c..c4f7318f2021 100644
--- a/packages/docusaurus-theme-translations/locales/pl/theme-live-codeblock.json
+++ b/packages/docusaurus-theme-translations/locales/pl/theme-live-codeblock.json
@@ -1,5 +1,5 @@
{
"theme.Playground.liveEditor": "Edytor live",
- "theme.Playground.buttons.reset": "Reset",
+ "theme.Playground.buttons.reset": "Resetuj",
"theme.Playground.result": "Rezultat"
}
diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json
index cb0c3ed35bf9..fbb72a78a311 100644
--- a/packages/docusaurus-utils/package.json
+++ b/packages/docusaurus-utils/package.json
@@ -47,6 +47,6 @@
"@types/micromatch": "^4.0.10",
"@types/js-yaml": "^4.0.9",
"@types/react-dom": "^19.2.3",
- "dedent": "^0.7.0"
+ "dedent": "^1.7.2"
}
}
diff --git a/packages/docusaurus-utils/src/__tests__/markdownHeadingIdUtils.test.ts b/packages/docusaurus-utils/src/__tests__/markdownHeadingIdUtils.test.ts
index 6cb18ac72ba7..5ddf2bda081d 100644
--- a/packages/docusaurus-utils/src/__tests__/markdownHeadingIdUtils.test.ts
+++ b/packages/docusaurus-utils/src/__tests__/markdownHeadingIdUtils.test.ts
@@ -245,17 +245,17 @@ describe('escapeMarkdownHeadingIds', () => {
###### title 6 {#id-6}
`),
).toEqual(dedent`
- # title 1 \{#id-1}
+ # title 1 \\{#id-1}
- ## title 2 \{#id-2}
+ ## title 2 \\{#id-2}
- ### title 3 \{#id-3}
+ ### title 3 \\{#id-3}
- #### title 4 \{#id-4}
+ #### title 4 \\{#id-4}
- ##### title 5 \{#id-5}
+ ##### title 5 \\{#id-5}
- ###### title 6 \{#id-6}
+ ###### title 6 \\{#id-6}
`);
});
@@ -294,7 +294,7 @@ describe('escapeMarkdownHeadingIds', () => {
Stack Overflow is a popular forum to ask code-level questions or if you're stuck with a specific error. Read through the [existing questions](https://stackoverflow.com/questions/tagged/docusaurus) tagged with **docusaurus** or [ask your own](https://stackoverflow.com/questions/ask?tags=docusaurus)!
- ## Discussion forums \{#discussion-forums}
+ ## Discussion forums \\{#discussion-forums}
There are many online forums for discussion about best practices and application architecture as well as the future of Docusaurus. If you have an answerable code-level question, Stack Overflow is usually a better fit.
@@ -320,11 +320,11 @@ describe('escapeMarkdownHeadingIds', () => {
Before participating in Docusaurus' communities, [please read our Code of Conduct](https://engineering.fb.com/codeofconduct/). We have adopted the [Contributor Covenant](https://www.contributor-covenant.org/) and we expect that all community members adhere to the guidelines within.
- ## Stack Overflow \{#stack-overflow}
+ ## Stack Overflow \\{#stack-overflow}
Stack Overflow is a popular forum to ask code-level questions or if you're stuck with a specific error. Read through the [existing questions](https://stackoverflow.com/questions/tagged/docusaurus) tagged with **docusaurus** or [ask your own](https://stackoverflow.com/questions/ask?tags=docusaurus)!
- ## Discussion forums \{#discussion-forums}
+ ## Discussion forums \\{#discussion-forums}
There are many online forums for discussion about best practices and application architecture as well as the future of Docusaurus. If you have an answerable code-level question, Stack Overflow is usually a better fit.
@@ -333,11 +333,11 @@ describe('escapeMarkdownHeadingIds', () => {
- [#contributors](https://discord.gg/6g6ASPA) for contributing help
- [Reddit's Docusaurus community](https://www.reddit.com/r/docusaurus/)
- ## Feature requests \{#feature-requests}
+ ## Feature requests \\{#feature-requests}
For new feature requests, you can create a post on our [feature requests board (Canny)](/feature-requests), which is a handy tool for road-mapping and allows for sorting by upvotes, which gives the core team a better indicator of what features are in high demand, as compared to GitHub issues which are harder to triage. Refrain from making a Pull Request for new features (especially large ones) as someone might already be working on it or will be part of our roadmap. Talk to us first!
- ## News \{#news}
+ ## News \\{#news}
For the latest news about Docusaurus, [follow **@docusaurus** on X](https://x.com/docusaurus) and the [official Docusaurus blog](/blog) on this website.
`);
diff --git a/packages/docusaurus/bin/beforeCli.mjs b/packages/docusaurus/bin/beforeCli.mjs
index 4662c38b4377..42140564b3b8 100644
--- a/packages/docusaurus/bin/beforeCli.mjs
+++ b/packages/docusaurus/bin/beforeCli.mjs
@@ -17,7 +17,7 @@ import updateNotifier from 'update-notifier';
import boxen from 'boxen';
import {DOCUSAURUS_VERSION} from '@docusaurus/utils';
-const packageJson = /** @type {import("../package.json")} */ (
+const packageJson = /** @type {typeof import("../package.json")} */ (
createRequire(import.meta.url)('../package.json')
);
/** @type {Record} */
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 57e3ec0d697a..68a590370834 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -68,8 +68,8 @@ importers:
specifier: ^0.8.12
version: 0.8.17
'@vitejs/plugin-react':
- specifier: ^5.0.0
- version: 5.2.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
+ specifier: ^6.0.2
+ version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
'@vitest/eslint-plugin':
specifier: ^1.6.17
version: 1.6.20(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)(vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)))
@@ -234,7 +234,7 @@ importers:
version: 2.4.2
semver:
specifier: ^7.7.4
- version: 7.8.1
+ version: 7.8.5
supports-color:
specifier: ^10.2.2
version: 10.2.2
@@ -441,7 +441,7 @@ importers:
version: 5.3.4(react@19.2.6)
semver:
specifier: ^7.7.4
- version: 7.8.1
+ version: 7.8.5
serve-handler:
specifier: ^6.1.7
version: 6.1.7
@@ -660,7 +660,7 @@ importers:
version: 8.5.15
postcss-sort-media-queries:
specifier: ^6.5.0
- version: 6.6.1(postcss@8.5.15)
+ version: 6.6.2(postcss@8.5.15)
tslib:
specifier: ^2.6.0
version: 2.8.1
@@ -691,7 +691,7 @@ importers:
version: 1.32.0
semver:
specifier: ^7.7.4
- version: 7.8.1
+ version: 7.8.5
swc-loader:
specifier: ^0.2.7
version: 0.2.7(@swc/core@1.15.40)(webpack@5.107.2(@swc/core@1.15.40)(@swc/html@1.15.40)(lightningcss@1.32.0)(postcss@8.5.15))
@@ -1979,8 +1979,8 @@ importers:
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.14)
dedent:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^1.7.2
+ version: 1.7.2
packages/docusaurus-utils-common:
dependencies:
@@ -2808,18 +2808,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-react-jsx-self@7.29.7':
- resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.29.7':
- resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-transform-react-jsx@7.29.7':
resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==}
engines: {node: '>=6.9.0'}
@@ -5050,9 +5038,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rolldown/pluginutils@1.0.0-rc.3':
- resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==}
-
'@rolldown/pluginutils@1.0.1':
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
@@ -6325,11 +6310,18 @@ packages:
resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==}
engines: {node: '>= 20'}
- '@vitejs/plugin-react@5.2.0':
- resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==}
+ '@vitejs/plugin-react@6.0.2':
+ resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
+ babel-plugin-react-compiler: ^1.0.0
+ vite: ^8.0.0
+ peerDependenciesMeta:
+ '@rolldown/plugin-babel':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
'@vitest/eslint-plugin@1.6.20':
resolution: {integrity: sha512-xRwWHFG0Utp6hXtbGiWk4VdKXCGdExD8kbWrrmFEiG5dk8anOJ+vbWbeOa8EbkocKQRTsx7JAWETccZiBgFp/Q==}
@@ -7800,9 +7792,6 @@ packages:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
- dedent@0.7.0:
- resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
-
dedent@1.5.3:
resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
peerDependencies:
@@ -7811,6 +7800,14 @@ packages:
babel-plugin-macros:
optional: true
+ dedent@1.7.2:
+ resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==}
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+
deep-eql@4.1.4:
resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
engines: {node: '>=6'}
@@ -11294,8 +11291,8 @@ packages:
resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
engines: {node: '>=4'}
- postcss-sort-media-queries@6.6.1:
- resolution: {integrity: sha512-RUxLyxyG//HZ9Ax07u7vNgufwcnsqWx/IGafKzpsNgGulsxsKjNb8KV3Znzc0u2RLH3D3MCzwwSj16dVyvL7pA==}
+ postcss-sort-media-queries@6.6.2:
+ resolution: {integrity: sha512-4whmLOUtFFX2V0w5JM7Wqp1Du+DiOsfgFhJuxdy1d5kBoNy/dfkq4He8eNDGI3ZEJlCk95yQhG75aVcEMKGaFQ==}
engines: {node: '>=20.0.0'}
peerDependencies:
postcss: ^8.5.6
@@ -11551,10 +11548,6 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-refresh@0.18.0:
- resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==}
- engines: {node: '>=0.10.0'}
-
react-router-config@5.1.1:
resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
peerDependencies:
@@ -14263,16 +14256,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
- '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
'@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
@@ -16640,8 +16623,6 @@ snapshots:
'@rolldown/binding-win32-x64-msvc@1.0.2':
optional: true
- '@rolldown/pluginutils@1.0.0-rc.3': {}
-
'@rolldown/pluginutils@1.0.1': {}
'@rollup/plugin-babel@6.1.0(@babel/core@7.29.7)(@types/babel__core@7.20.5)(rollup@4.60.4)':
@@ -17875,7 +17856,7 @@ snapshots:
eslint: 9.39.4(jiti@2.7.0)
json-stable-stringify-without-jsonify: 1.0.1
lodash.merge: 4.6.2
- semver: 7.8.1
+ semver: 7.8.5
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -18000,17 +17981,10 @@ snapshots:
'@vercel/oidc@3.2.0': {}
- '@vitejs/plugin-react@5.2.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))':
+ '@vitejs/plugin-react@6.0.2(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))':
dependencies:
- '@babel/core': 7.29.7
- '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7)
- '@rolldown/pluginutils': 1.0.0-rc.3
- '@types/babel__core': 7.20.5
- react-refresh: 0.18.0
+ '@rolldown/pluginutils': 1.0.1
vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)
- transitivePeerDependencies:
- - supports-color
'@vitest/eslint-plugin@1.6.20(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)(vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)))':
dependencies:
@@ -19303,7 +19277,7 @@ snapshots:
postcss-modules-scope: 3.2.1(postcss@8.5.15)
postcss-modules-values: 4.0.0(postcss@8.5.15)
postcss-value-parser: 4.2.0
- semver: 7.8.1
+ semver: 7.8.5
optionalDependencies:
webpack: 5.107.2(@swc/core@1.15.40)(clean-css@5.3.3)(cssnano@7.1.9(postcss@8.5.15))(html-minifier-terser@7.2.0)(postcss@8.5.15)
@@ -19678,10 +19652,10 @@ snapshots:
dependencies:
mimic-response: 3.1.0
- dedent@0.7.0: {}
-
dedent@1.5.3: {}
+ dedent@1.7.2: {}
+
deep-eql@4.1.4:
dependencies:
type-detect: 4.1.0
@@ -23862,7 +23836,7 @@ snapshots:
cosmiconfig: 9.0.1(typescript@6.0.3)
jiti: 2.7.0
postcss: 8.5.15
- semver: 7.8.1
+ semver: 7.8.5
optionalDependencies:
webpack: 5.107.2(@swc/core@1.15.40)(clean-css@5.3.3)(cssnano@7.1.9(postcss@8.5.15))(html-minifier-terser@7.2.0)(postcss@8.5.15)
transitivePeerDependencies:
@@ -24135,7 +24109,7 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss-sort-media-queries@6.6.1(postcss@8.5.15):
+ postcss-sort-media-queries@6.6.2(postcss@8.5.15):
dependencies:
postcss: 8.5.15
sort-css-media-queries: 3.0.5
@@ -24357,8 +24331,6 @@ snapshots:
react: 19.2.6
react-dom: 19.2.6(react@19.2.6)
- react-refresh@0.18.0: {}
-
react-router-config@5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6):
dependencies:
'@babel/runtime': 7.29.7
@@ -26110,7 +26082,7 @@ snapshots:
is-yarn-global: 0.4.1
latest-version: 7.0.0
pupa: 3.3.0
- semver: 7.8.1
+ semver: 7.8.5
semver-diff: 4.0.0
xdg-basedir: 5.1.0
diff --git a/project-words.txt b/project-words.txt
index c923a1dc8104..0dff47f2c354 100644
--- a/project-words.txt
+++ b/project-words.txt
@@ -1,6 +1,7 @@
# Project Words - DO NOT TOUCH - This is updated through CI
abernathyca
Adriaan
+agentreadyweb
alexbdebrie
Alexey
algoliasearch
@@ -236,6 +237,7 @@ Quickwit
quickwit
rachelnabors
Ramón
+rangefind
reactjs
rearchitecture
Recma
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 7a004aa4ffa7..3fa83a7e9051 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -46,7 +46,6 @@
/* Handled by ESLint */
"noUnusedLocals": false,
"noUnusedParameters": false,
- "importsNotUsedAsValues": "remove",
/* Module Resolution */
"moduleResolution": "NodeNext",
diff --git a/website/community/2-resources.mdx b/website/community/2-resources.mdx
index 6811a756d7ed..f828823fe928 100644
--- a/website/community/2-resources.mdx
+++ b/website/community/2-resources.mdx
@@ -45,6 +45,7 @@ See the showcase
- [@orama/plugin-docusaurus-v3](https://github.com/askorama/orama/tree/main/packages/plugin-docusaurus-v3) - [Orama](https://askorama.ai/) plugin for Docusaurus v3
- [@getcanary/docusaurus-theme-search-pagefind](https://getcanary.dev/docs/integrations/docusaurus.html) - Create [Pagefind](https://pagefind.app/) index and use [Canary](https://github.com/fastrepl/canary) as UI primitives.
- [docusaurus-biel](https://github.com/TechDocsStudio/docusaurus-biel) - Docusaurus plugin to add an AI chatbot and AI search with source-cited answers, powered by [Biel.ai](https://biel.ai)
+- [docusaurus-plugin-rangefind](https://github.com/xjodoin/rangefind/tree/main/packages/docusaurus-plugin-rangefind) - Local/offline search over a static [rangefind](https://rangefind.dev) index queried with HTTP range requests — BM25F relevance, typo correction, autocomplete; no search server
### Integrations {/* #integrations */}
@@ -59,6 +60,7 @@ See the showcase
- [docusaurus-plugin-llms](https://github.com/rachfop/docusaurus-plugin-llms) - Generates `llms.txt` and `llms-full.txt` files from your docs, following the [llmstxt.org](https://llmstxt.org/) standard.
- [docusaurus-plugin-llms-txt](https://github.com/din0s/docusaurus-plugin-llms-txt) - Generates a concatenated Markdown `llms.txt` file from your documentation.
- [expose-markdown-docusaurus-plugin](https://github.com/FlyNumber/markdown_docusaurus_plugin) - Exposes your /docs Markdown files as raw `.md` URLs (for LLM consumption).
+- [@agentreadyweb/docusaurus-plugin](https://github.com/AshutoshRaj97/agentready-mcp/tree/main/docusaurus-plugin) - Auto-indexes your docs in [AgentReady](https://www.agentready.it.com) after every build, making them instantly queryable by AI agents (Claude, Cursor, Windsurf) via MCP with cited answers.
### Features {/* #features */}
diff --git a/website/docs/typescript-support.mdx b/website/docs/typescript-support.mdx
index d4fb4e62f140..1f8187c930db 100644
--- a/website/docs/typescript-support.mdx
+++ b/website/docs/typescript-support.mdx
@@ -6,7 +6,7 @@ description: Docusaurus is written in TypeScript and provides first-class TypeSc
Docusaurus is written in TypeScript and provides first-class TypeScript support.
-The minimum required version is **TypeScript 5.1**.
+The minimum required version is **TypeScript 6.0**.
## Initialization {/* #initialization */}
@@ -31,9 +31,7 @@ Then add `tsconfig.json` to your project root with the following content:
```json title="tsconfig.json"
{
"extends": "@docusaurus/tsconfig",
- "compilerOptions": {
- "baseUrl": "."
- }
+ "compilerOptions": {}
}
```
@@ -59,7 +57,6 @@ Alternatively, add the package to the `types` compiler option of your `tsconfig.
{
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
- "baseUrl": ".",
// highlight-next-line
"types": ["@docusaurus/theme-live-codeblock"]
}
diff --git a/website/tsconfig.json b/website/tsconfig.json
index 3c4ad97eb1f4..0ab9a9b2daea 100644
--- a/website/tsconfig.json
+++ b/website/tsconfig.json
@@ -3,8 +3,6 @@
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"lib": ["DOM", "ESNext"],
- "baseUrl": ".",
- "ignoreDeprecations": "6.0",
"resolveJsonModule": true,
"allowArbitraryExtensions": true,
@@ -28,7 +26,6 @@
"useUnknownInCatchVariables": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
- "importsNotUsedAsValues": "remove",
// This is important. We run `pnpm tsc` in website so we can catch issues
// with our declaration files (mostly names that are forgotten to be