Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
667bda5
added qick start
pranjalisr Mar 3, 2026
3514f5e
added qick start
pranjalisr Mar 3, 2026
1fd21a6
chore(deps): bump cypress-io/github-action in the dependencies group …
dependabot[bot] Mar 3, 2026
38cd64e
docs: convert home page tut to esm (#7907)
TusharThakur04 Mar 3, 2026
545aeb0
fix: add remark plugin to remove duplicate H1 matching frontmatter ti…
ryzrr Mar 4, 2026
4c7ac1d
fix(styles): replace :focus with :focus-visible for Copy-Button (#7916)
TusharThakur04 Mar 5, 2026
b9f820a
chore(deps): bump immutable from 5.1.4 to 5.1.5 (#7913)
dependabot[bot] Mar 5, 2026
5fb5eba
ci: automerge dependabot updates (#7917)
alexander-akait Mar 5, 2026
8f97f62
chore(deps): bump the dependencies group with 2 updates (#7918)
dependabot[bot] Mar 5, 2026
0d0e209
chore(deps-dev): bump the dependencies group across 1 directory with …
dependabot[bot] Mar 5, 2026
3193f0f
fix: improve language dropdown visibility and z-index (#7915)
ryzrr Mar 5, 2026
ae318d5
feat(blog): implement date-based sorting and minimal post preview (tr…
Katari-8055 Mar 5, 2026
c1eb62b
docs: fix inconsistent ESM and CommonJS syntax Related to #7772 (#7923)
Katari-8055 Mar 6, 2026
0c4a3f6
fix: improve spacing between footer links and icons #7926 (#7927)
rahul-kr-rai Mar 6, 2026
8d7cdff
fix: remove invalid alt attribute from anchor tag in Print component …
ryzrr Mar 6, 2026
2d1b7dc
fix(guides) : standardize tree view on guide (#7922)
ThierryRakotomanana Mar 6, 2026
c4e38af
fix: make changes commonjs to ESM (#7930)
Katari-8055 Mar 6, 2026
0cd87a9
fix(sw): return inner promise in activate cache cleanup (#7928)
ryzrr Mar 6, 2026
78d37e0
change: convert CommonJS to ESM in under-the-hood.mdx (#7931)
ItsAbir005 Mar 6, 2026
21f7925
fix: migrate to ESM
ItsAbir005 Mar 7, 2026
61a84aa
fix: correct fs.writeFileSync usage in build-content-tree script (#7937)
Katari-8055 Mar 7, 2026
b6a0a0a
fix: update the url path of github and twitter
rahul-kr-rai Mar 7, 2026
558f963
docs(parser): provide practical example for parser hooks usage (#7933)
moshams272 Mar 7, 2026
0334563
fix: convert CommonJS to ESM
ItsAbir005 Mar 7, 2026
b66d2a4
fix(remark-responsive-table): use mdast-util-to-string for data-th at…
ryzrr Mar 7, 2026
51603e6
docs(concepts): clarify zero-config entry default and error message (…
saishankar404 Mar 7, 2026
35dee27
refactor: optimize flattenContent to avoid repeated array spreading (…
Katari-8055 Mar 8, 2026
027d79c
fix(prism-theme): fix typo .toke.variable -> .token.variable (#7945)
ryzrr Mar 8, 2026
1f1257d
docs(guides): update outdated package versions in code examples (#7946)
ryzrr Mar 8, 2026
39ee23b
fix(ssg): generate custom 404.html for GitHub Pages fallback (#7943)
moshams272 Mar 8, 2026
2281185
chore: update react and related dependencies to latest versions (#7929)
TusharThakur04 Mar 8, 2026
4e79904
chore(deps-dev): bump babel-loader in the dependencies group (#7950)
dependabot[bot] Mar 8, 2026
d1ecd4b
fix(blog): replace localhost URL with relative path in webpack-5-105 …
ryzrr Mar 10, 2026
47f0873
fix: handle numbers above 6 digits in formatMoney (#7956) (#7969)
shivxmsharma Mar 10, 2026
bcd47e7
fix: improve navbar alignment and spacing (#7958)
Katari-8055 Mar 10, 2026
bfcbac2
refactor: remove unused propTypes and defaultProps from HelloDarkness…
Katari-8055 Mar 10, 2026
5ae9336
fix(process-readme): fix broken npm URL normalization (#7954)
ryzrr Mar 10, 2026
a83f575
chore(deps-dev): bump copy-webpack-plugin from 13.0.1 to 14.0.0 (#7952)
dependabot[bot] Mar 10, 2026
7a3cbc8
fix(a11y): mark HelloDarkness SVG icons as aria-hidden (#7949)
mr-baraiya Mar 10, 2026
3be797c
refactor: resolve deprecated scss warnings (#7955)
TusharThakur04 Mar 10, 2026
047e270
refactor: replace reserved import prop with loadContent (#7968)
Katari-8055 Mar 10, 2026
674f9cc
chore(deps-dev): bump css-minimizer-webpack-plugin from 7.0.4 to 8.0.…
dependabot[bot] Mar 10, 2026
c71f8cb
feat: add scroll-to-top button
rahul-kr-rai Mar 10, 2026
19be461
fix: improve accessibility in Navigation, Footer, and PageNotFound (#…
shivxmsharma Mar 10, 2026
ce980af
common js to ESM (#7962)
ItsAbir005 Mar 10, 2026
c2ea427
docs(guides): document resolve.tsconfig for TypeScript path aliases (…
ryzrr Mar 10, 2026
64e6491
chore(deps-dev): bump eslint-plugin-cypress from 5.2.1 to 6.1.0 (#7951)
dependabot[bot] Mar 10, 2026
ae1e0a2
chore: update some deps
alexander-akait Mar 10, 2026
3c4c526
docs(migrate): convert CJS config examples to ESM (#7981)
ItsAbir005 Mar 11, 2026
55a0c25
docs(plugins): convert EnvironmentPlugin git example to ESM (#7983)
ItsAbir005 Mar 11, 2026
59e0be3
docs(guides): add import.defer() context module example to lazy loadi…
ryzrr Mar 11, 2026
2e239d6
fix(a11y): use distinct alt text for footer license icons (#7971)
mr-baraiya Mar 11, 2026
730750d
docs: fix typo 'Chrome Exentions' → 'Chrome Extensions' (#7986)
mr-baraiya Mar 11, 2026
73833a1
chore: update tailwind and related dependencies to latest versions (#…
TusharThakur04 Mar 12, 2026
020e650
docs: use HTTPS for StackOverflow webpack tag link (#7972)
mr-baraiya Mar 12, 2026
75c6432
docs(configuration): document module.parser.javascript.importMeta 'pr…
ryzrr Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
version: 2
updates:
- package-ecosystem: "npm"
- package-ecosystem: npm
directory: "/"
open-pull-requests-limit: 10
schedule:
interval: "weekly"
open-pull-requests-limit: 20
labels:
- "dependencies"
ignore:
- dependency-name: "react"
- dependency-name: "react-dom"
- dependency-name: "react-router-dom"
- dependency-name: "@docsearch/react"
- dependency-name: "tailwindcss"
- dependencies
versioning-strategy: widen
groups:
dependencies:
patterns:
- "*"
update-types:
- "minor"
- "patch"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 20
labels:
- dependencies
groups:
dependencies:
patterns:
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Dependabot

on: pull_request

permissions:
contents: write
pull-requests: write

jobs:
dependabot-auto-merge:
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:
- name: Generate Token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: app-token
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}

- name: Dependabot metadata
id: dependabot-metadata
uses: dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2.5.0
with:
github-token: "${{ steps.app-token.outputs.token }}"

- name: Enable auto-merge for Dependabot PRs
if: steps.dependabot-metadata.outputs.update-type != 'version-update:semver-major'
run: |
if [ "$(gh pr status --json reviewDecision -q .currentBranch.reviewDecision)" != "APPROVED" ];
then gh pr review --approve "$PR_URL"
else echo "PR already approved, skipping additional approvals to minimize emails/notification noise.";
fi

gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ steps.app-token.outputs.token }}
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ jobs:
- name: "Checkout Repository"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: "Dependency Review"
uses: actions/dependency-review-action@05fe4576374b728f0c523d6a13d64c25081e0803 # v4.8.3
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}
cache: yarn
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}
cache: yarn
Expand All @@ -38,7 +38,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}
cache: yarn
Expand All @@ -58,7 +58,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}
cache: yarn
Expand All @@ -84,7 +84,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}
cache: yarn
Expand All @@ -95,7 +95,7 @@ jobs:
uses: ./.github/actions/webpack-persistent-cache

- name: Cypress run
uses: cypress-io/github-action@e44ee0fa67251ab7e2d854d85b3a466577f47d14 # v7.1.3
uses: cypress-io/github-action@bc22e01685c56e89e7813fd8e26f33dc47f87e15 # v7.1.5
with:
browser: chrome
config-file: cypress.config.js
Expand Down
6 changes: 5 additions & 1 deletion cypress/e2e/code-block-with-copy.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ describe("CodeBlockWithCopy", () => {
it("copies non-diff code blocks without altering content", () => {
visitWithClipboardSpy("/concepts/");

// Wait for Suspense content to load before querying code blocks
cy.get("button.copy-button").should("exist");

// Select the first webpack.config.js example and its copy wrapper.
getFirstWebpackConfigBlock("standardCodeBlock");

Expand All @@ -73,6 +76,7 @@ describe("CodeBlockWithCopy", () => {
.find("code")
.invoke("text")
.as("expectedCopiedText");
cy.get("@standardCodeBlock").find("button.copy-button").should("exist");
cy.get("@standardCodeBlock").find("button.copy-button").click();

// Assert copied output is unchanged for regular code blocks.
Expand All @@ -82,7 +86,7 @@ describe("CodeBlockWithCopy", () => {

cy.get("@expectedCopiedText").then((expectedCopiedText) => {
expect(copiedText).to.eq(expectedCopiedText);
expect(copiedText).to.include("module.exports = {");
expect(copiedText).to.include("export default {");
expect(copiedText).to.include('entry: "./path/to/my/entry/file.js",');
});
});
Expand Down
12 changes: 7 additions & 5 deletions cypress/e2e/pr_4435.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,18 @@ describe("Open page in new tab", { scrollBehavior: false }, () => {
cy.stub(win, "scrollTo");
},
});
// wait for page content to load before asserting scroll
cy.get('.sidebar-item__title[href="/concepts/plugins/"]').should("exist");
// there's one call in Page.jsx when componentDidMount
cy.window().then((win) => {
cy.window().should((win) => {
expect(win.scrollTo).to.be.calledOnce;
});

const selector = '.sidebar-item__title[href="/concepts/plugins/"]';

// we click the menu
cy.get(selector).click();
cy.window().then((win) => {
cy.window().should((win) => {
// we don't know whether user has scrolled the page or not although no pathname changed
expect(win.scrollTo).to.be.calledTwice;
});
Expand All @@ -28,7 +30,7 @@ describe("Open page in new tab", { scrollBehavior: false }, () => {
metaKey: true,
});
// no scrollTo should be called
cy.window().then((win) => {
cy.window().should((win) => {
expect(win.scrollTo).to.be.calledTwice;
});
} else if (Cypress.platform === "win32" || Cypress.platform === "linux") {
Expand All @@ -37,14 +39,14 @@ describe("Open page in new tab", { scrollBehavior: false }, () => {
ctrlKey: true,
});
// no scrollTo should be called
cy.window().then((win) => {
cy.window().should((win) => {
expect(win.scrollTo).to.be.calledTwice;
});
}

// we click the menu again, scroll to top again
cy.get(selector).click();
cy.window().then((win) => {
cy.window().should((win) => {
expect(win.scrollTo).to.be.calledThrice;
});
});
Expand Down
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export default defineConfig([
".github/**/*.md",
"**/README.md",
"src/mdx-components.mjs",
"**/setupTests.js",
]),
{
extends: [configs.recommended],
Expand Down
1 change: 1 addition & 0 deletions jest.config.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default {
verbose: true,
testEnvironment: "node",
setupFiles: ["./src/setupTests.js"],
transform: {
"^.+\\.jsx?$": "babel-jest",
},
Expand Down
50 changes: 26 additions & 24 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,43 +73,46 @@
"eval": "^0.1.5"
},
"dependencies": {
"@docsearch/react": "^3.9.0",
"@docsearch/react": "^4.6.0",
"@react-spring/web": "^10.0.3",
"path-browserify": "^1.0.1",
"prop-types": "^15.8.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-helmet-async": "^2.0.5",
"react-router-dom": "^6.28.0",
"react-tiny-popover": "5",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-helmet-async": "^3.0.0",
"react-router": "^7.13.1",
"react-router-dom": "^7.13.1",
"react-tiny-popover": "^8.1.6",
"react-use": "^17.6.0",
"react-visibility-sensor": "^5.0.2",
"webpack-pwa-manifest": "^4.3.0",
"workbox-window": "^7.4.0"
},
"devDependencies": {
"@babel/core": "^7.29.0",
"@babel/plugin-proposal-class-properties": "^7.17.12",
"@babel/preset-env": "^7.29.0",
"@babel/preset-react": "^7.27.6",
"@babel/preset-react": "^7.28.5",
"@mdx-js/loader": "^3.1.1",
"@mdx-js/react": "^3.1.1",
"@octokit/auth-action": "^6.0.2",
"@octokit/rest": "^22.0.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
"@svgr/webpack": "^8.1.0",
"autoprefixer": "^10.4.24",
"babel-loader": "^10.0.0",
"copy-webpack-plugin": "^13.0.1",
"@tailwindcss/postcss": "^4.2.1",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.2",
"autoprefixer": "^10.4.27",
"babel-loader": "^10.1.1",
"copy-webpack-plugin": "^14.0.0",
"css-loader": "^7.1.3",
"css-minimizer-webpack-plugin": "^7.0.4",
"css-minimizer-webpack-plugin": "^8.0.0",
"cypress": "^15.9.0",
"directory-tree": "^3.6.0",
"directory-tree-webpack-plugin": "^1.0.3",
"duplexer": "^0.1.1",
"eslint": "^9.39.2",
"eslint-config-webpack": "^4.9.3",
"eslint-plugin-cypress": "^5.2.1",
"eslint-plugin-cypress": "^6.1.0",
"eslint-plugin-mdx": "^3.6.2",
"feed": "^5.0.0",
"front-matter": "^4.0.2",
Expand All @@ -119,22 +122,21 @@
"http-server": "^14.1.1",
"husky": "^9.1.7",
"hyperlink": "^5.0.4",
"jest": "^30.2.0",
"jest-environment-jsdom": "^30.2.0",
"lightningcss": "^1.31.1",
"lint-staged": "^16.2.7",
"jest": "^30.3.0",
"jest-environment-jsdom": "^30.3.0",
"lightningcss": "^1.32.0",
"lint-staged": "^16.3.3",
"lodash": "^4.17.23",
"markdownlint-cli": "^0.47.0",
"markdownlint-cli": "^0.48.0",
"mdast-util-to-string": "^4.0.0",
"mini-css-extract-plugin": "^2.10.0",
"mini-css-extract-plugin": "^2.10.1",
"mkdirp": "^3.0.1",
"modularscale-sass": "^3.0.3",
"npm-run-all": "^4.1.1",
"postcss": "^8.5.6",
"postcss": "^8.5.8",
"postcss-loader": "^8.2.0",
"prettier": "^3.8.1",
"react-refresh": "^0.18.0",
"react-test-renderer": "^17.0.2",
"redirect-webpack-plugin": "^1.0.0",
"remark": "^15.0.1",
"remark-autolink-headings": "7.0.1",
Expand All @@ -143,15 +145,15 @@
"remark-frontmatter": "^5.0.0",
"remark-gfm": "^4.0.1",
"remark-html": "^16.0.1",
"remark-refractor": "montogeek/remark-refractor",
"remark-refractor": "^1.0.0",
"rimraf": "^6.1.2",
"sass": "^1.97.2",
"sass": "^1.97.3",
"sass-loader": "^16.0.6",
"sirv-cli": "^3.0.1",
"sitemap-static": "^0.4.2",
"static-site-generator-webpack-plugin": "^3.4.1",
"style-loader": "^4.0.0",
"tailwindcss": "^3.4.16",
"tailwindcss": "^4.2.1",
"tap-spot": "^1.1.2",
"unist-util-visit": "^5.1.0",
"webpack": "^5.105.0",
Expand Down
2 changes: 1 addition & 1 deletion postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict";

module.exports = {
plugins: [require("tailwindcss"), require("autoprefixer")],
plugins: ["@tailwindcss/postcss", "autoprefixer"],
};
Loading
Loading