From 35dec2e326fe4a1d6b2bc8e4c0da62bd5461214c Mon Sep 17 00:00:00 2001 From: Hussam Ghazzi Date: Wed, 15 Jan 2025 16:18:19 -0500 Subject: [PATCH 01/28] Add eslint-plugin-clsx (#5547) * Add eslint-plugin-clsx * revert BoxProp change * remove rule --- .eslintrc.js | 1 + package-lock.json | 197 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 3 files changed, 198 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 9b76ac6ae1a..71fcb7017ec 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,6 +17,7 @@ module.exports = { 'plugin:primer-react/recommended', 'plugin:import/typescript', 'plugin:ssr-friendly/recommended', + 'plugin:clsx/recommended', ], settings: { react: { diff --git a/package-lock.json b/package-lock.json index 94260dca6d6..0e0cf32c685 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "@typescript-eslint/parser": "^7.3.1", "eslint": "8.56.0", "eslint-import-resolver-typescript": "3.6.1", + "eslint-plugin-clsx": "0.0.9", "eslint-plugin-github": "5.0.2", "eslint-plugin-jest": "28.8.3", "eslint-plugin-jsx-a11y": "6.7.1", @@ -13093,6 +13094,175 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-clsx": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-clsx/-/eslint-plugin-clsx-0.0.9.tgz", + "integrity": "sha512-t/HOq0yuy+VuEYFg4JYZax6KvPuJRVM11wtZpK5THh//mA5DMM3EL5w7aK4LrLcxpTYn2ETBYggFY8xagN9q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "^8.4.0", + "@typescript-eslint/utils": "^8.4.0", + "esquery": "^1.6.0", + "remeda": "^2.12.0" + }, + "peerDependencies": { + "eslint": "^8" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/@typescript-eslint/scope-manager": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/@typescript-eslint/types": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/@typescript-eslint/utils": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.20.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-clsx/node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/eslint-plugin-escompat": { "version": "3.11.4", "dev": true, @@ -14437,7 +14607,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -24651,6 +24823,29 @@ "@types/unist": "*" } }, + "node_modules/remeda": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.19.1.tgz", + "integrity": "sha512-IZ1NwntA2xwksQgn6zRFZB9lsVWW1GoRZZno3UIHE0tUh1B62ZSIhFIDIRssUfgqOBG2kL7g3GXx4e+CK59OPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^4.30.0" + } + }, + "node_modules/remeda/node_modules/type-fest": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.32.0.tgz", + "integrity": "sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/require-directory": { "version": "2.1.1", "dev": true, diff --git a/package.json b/package.json index f692fa9ec01..f0ce5971078 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@typescript-eslint/parser": "^7.3.1", "eslint": "8.56.0", "eslint-import-resolver-typescript": "3.6.1", + "eslint-plugin-clsx": "0.0.9", "eslint-plugin-github": "5.0.2", "eslint-plugin-jest": "28.8.3", "eslint-plugin-jsx-a11y": "6.7.1", From 49bf6f1d13944a402611d2ca62df0edbd5593bda Mon Sep 17 00:00:00 2001 From: "primer[bot]" <119360173+primer[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 10:03:49 -0500 Subject: [PATCH 02/28] Version Packages (#5500) Co-authored-by: github-actions[bot] --- .changeset/eighty-carpets-rush.md | 5 ----- .changeset/lemon-files-complain.md | 5 ----- .changeset/mean-plants-cover.md | 5 ----- .changeset/two-apples-juggle.md | 5 ----- .changeset/two-jokes-compete.md | 5 ----- examples/app-router/package.json | 2 +- examples/codesandbox/package.json | 2 +- examples/theming/package.json | 2 +- packages/react/CHANGELOG.md | 16 ++++++++++++++++ packages/react/package.json | 2 +- 10 files changed, 20 insertions(+), 29 deletions(-) delete mode 100644 .changeset/eighty-carpets-rush.md delete mode 100644 .changeset/lemon-files-complain.md delete mode 100644 .changeset/mean-plants-cover.md delete mode 100644 .changeset/two-apples-juggle.md delete mode 100644 .changeset/two-jokes-compete.md diff --git a/.changeset/eighty-carpets-rush.md b/.changeset/eighty-carpets-rush.md deleted file mode 100644 index 829d5dae13d..00000000000 --- a/.changeset/eighty-carpets-rush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": patch ---- - -Pagination: Hides the `Pagination` Previous and Next buttons from the accessibility tree when they are disabled. diff --git a/.changeset/lemon-files-complain.md b/.changeset/lemon-files-complain.md deleted file mode 100644 index 2fcaf67849e..00000000000 --- a/.changeset/lemon-files-complain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": minor ---- - -Remove CSS modules feature flag from ButtonGroup diff --git a/.changeset/mean-plants-cover.md b/.changeset/mean-plants-cover.md deleted file mode 100644 index f28776936e4..00000000000 --- a/.changeset/mean-plants-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": minor ---- - -Remove CSS modules feature flag from Details diff --git a/.changeset/two-apples-juggle.md b/.changeset/two-apples-juggle.md deleted file mode 100644 index dfa6dca0054..00000000000 --- a/.changeset/two-apples-juggle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": minor ---- - -Remove CSS modules feature flag from Radio diff --git a/.changeset/two-jokes-compete.md b/.changeset/two-jokes-compete.md deleted file mode 100644 index aa9ef5878cf..00000000000 --- a/.changeset/two-jokes-compete.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": minor ---- - -Remove the CSS module feature flag from Pagehead diff --git a/examples/app-router/package.json b/examples/app-router/package.json index fed76a9f4ed..9c89f7ca6f3 100644 --- a/examples/app-router/package.json +++ b/examples/app-router/package.json @@ -10,7 +10,7 @@ "type-check": "tsc --noEmit" }, "dependencies": { - "@primer/react": "37.9.1", + "@primer/react": "37.10.0", "next": "^14.2.15", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/codesandbox/package.json b/examples/codesandbox/package.json index 5b1e2b52be2..b785b91c3ec 100644 --- a/examples/codesandbox/package.json +++ b/examples/codesandbox/package.json @@ -20,7 +20,7 @@ "@typescript-eslint/eslint-plugin": "^7.11.0", "@typescript-eslint/parser": "^7.3.1", "@vitejs/plugin-react": "^4.3.3", - "@primer/react": "37.9.1", + "@primer/react": "37.10.0", "eslint": "^8.56.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.7", diff --git a/examples/theming/package.json b/examples/theming/package.json index f43a50be556..f5c90939319 100644 --- a/examples/theming/package.json +++ b/examples/theming/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@primer/octicons-react": "^19.14.0", - "@primer/react": "37.9.1", + "@primer/react": "37.10.0", "clsx": "^1.2.1", "next": "^14.2.15", "react": "^18.3.1", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 6ef64c4c8ec..9ecd37d429a 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,21 @@ # @primer/react +## 37.10.0 + +### Minor Changes + +- [#5457](https://github.com/primer/react/pull/5457) [`b1e5699`](https://github.com/primer/react/commit/b1e56994d460ee088508445d28150abc902781a8) Thanks [@jonrohan](https://github.com/jonrohan)! - Remove CSS modules feature flag from ButtonGroup + +- [#5458](https://github.com/primer/react/pull/5458) [`b763ecd`](https://github.com/primer/react/commit/b763ecd69c8f024feaaabdc31d8805dd50007736) Thanks [@jonrohan](https://github.com/jonrohan)! - Remove CSS modules feature flag from Details + +- [#5463](https://github.com/primer/react/pull/5463) [`b55025c`](https://github.com/primer/react/commit/b55025cf2bf7f349cecb856449508bf822507c6d) Thanks [@jonrohan](https://github.com/jonrohan)! - Remove CSS modules feature flag from Radio + +- [#5462](https://github.com/primer/react/pull/5462) [`8b8ec3c`](https://github.com/primer/react/commit/8b8ec3c64fce6f113b81f4169fe9460d1cef1967) Thanks [@jonrohan](https://github.com/jonrohan)! - Remove the CSS module feature flag from Pagehead + +### Patch Changes + +- [#5488](https://github.com/primer/react/pull/5488) [`e352e19`](https://github.com/primer/react/commit/e352e192dae7ae7b24420f4afae08871536c0484) Thanks [@hectahertz](https://github.com/hectahertz)! - Pagination: Hides the `Pagination` Previous and Next buttons from the accessibility tree when they are disabled. + ## 37.9.1 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index c63e2f8d411..9c8ea3eeffe 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@primer/react", - "version": "37.9.1", + "version": "37.10.0", "description": "An implementation of GitHub's Primer Design System using React", "main": "lib/index.js", "module": "lib-esm/index.js", From 9986d67c832c6f4b8138bebe9114b1932912e1bc Mon Sep 17 00:00:00 2001 From: Hector Garcia Date: Thu, 16 Jan 2025 18:54:08 +0100 Subject: [PATCH 03/28] Pagination algorithm enhancements (#5504) * Simplify Pagination algorithm with an early return * Pagination: Keep a consistent width on next and previous * Simplify Pagination algorithm and keep number of pages shown consistent * Add changeset * Replicate style changes to Pagination.module.css * wip: algo refactor Co-authored-by: Hector Garcia * refactor(Pagination): refine algorithm * fix: lint * pagination: small tweaks * fix(Pagination): refine logic, add tests * chore: remove outdated comments * test(vrt): update snapshots * test(vrt): update snapshots * chore(Pagination): refactoor Co-authored-by: Hector Garcia * fix(Pagination): remove unused type --------- Co-authored-by: Marie Lucca Co-authored-by: Hector Garcia Co-authored-by: Marie Lucca <40550942+francinelucca@users.noreply.github.com> Co-authored-by: francinelucca --- .changeset/serious-melons-own.md | 5 + ...Pagehead-Default-dark-colorblind-linux.png | Bin 8941 -> 9126 bytes .../Pagehead-Default-dark-dimmed-linux.png | Bin 8930 -> 9103 bytes ...ehead-Default-dark-high-contrast-linux.png | Bin 8943 -> 9119 bytes .../Pagehead-Default-dark-linux.png | Bin 8941 -> 9126 bytes ...Pagehead-Default-dark-tritanopia-linux.png | Bin 8941 -> 9126 bytes ...agehead-Default-light-colorblind-linux.png | Bin 8862 -> 9046 bytes ...head-Default-light-high-contrast-linux.png | Bin 8906 -> 9084 bytes .../Pagehead-Default-light-linux.png | Bin 8862 -> 9046 bytes ...agehead-Default-light-tritanopia-linux.png | Bin 8862 -> 9046 bytes ...head-Dev-Default-dark-colorblind-linux.png | Bin 8941 -> 9126 bytes ...Pagehead-Dev-Default-dark-dimmed-linux.png | Bin 8930 -> 9103 bytes ...d-Dev-Default-dark-high-contrast-linux.png | Bin 8943 -> 9119 bytes .../Pagehead-Dev-Default-dark-linux.png | Bin 8941 -> 9126 bytes ...head-Dev-Default-dark-tritanopia-linux.png | Bin 8941 -> 9126 bytes ...ead-Dev-Default-light-colorblind-linux.png | Bin 8862 -> 9046 bytes ...-Dev-Default-light-high-contrast-linux.png | Bin 8906 -> 9084 bytes .../Pagehead-Dev-Default-light-linux.png | Bin 8862 -> 9046 bytes ...ead-Dev-Default-light-tritanopia-linux.png | Bin 8862 -> 9046 bytes .../src/Pagination/Pagination.module.css | 12 +- packages/react/src/Pagination/Pagination.tsx | 13 +- packages/react/src/Pagination/model.tsx | 223 +++++++++--------- .../Pagination/PaginationModel.test.tsx | 210 ++++++++++++++++- 23 files changed, 325 insertions(+), 138 deletions(-) create mode 100644 .changeset/serious-melons-own.md diff --git a/.changeset/serious-melons-own.md b/.changeset/serious-melons-own.md new file mode 100644 index 00000000000..124bfcd306c --- /dev/null +++ b/.changeset/serious-melons-own.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Pagination: Optimize the page rendering algorithm and prevent layout shifts. diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-colorblind-linux.png index 7b494e5c706d7c4006920874ab43a33024ad3a40..9f2e9f306825e25c1bc214ad0d1f4a485a9535ab 100644 GIT binary patch delta 5184 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-dimmed-linux.png index e218ec5b0cd17ee3a3ccc28bd72ad15f078e0771..f5ab3fc8b55a8b327656276df682c8a0c7a48513 100644 GIT binary patch delta 5157 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-high-contrast-linux.png index 1d8e74c1f75af8b9e85f4cfdbe2caa41cd40d38b..baf44f68958b43db89a4b23ae22a6dfbc4a4e5b6 100644 GIT binary patch delta 5172 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 delta 5010 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 jfh}+J3IEXF1nxc8JrZ2 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-tritanopia-linux.png index 7b494e5c706d7c4006920874ab43a33024ad3a40..9f2e9f306825e25c1bc214ad0d1f4a485a9535ab 100644 GIT binary patch delta 5184 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-colorblind-linux.png index a4fe17ed97bff06660cde73aa660f8c8087ffeb6..277a20c467a2ecb5ba07601ecf587214ee33ad1e 100644 GIT binary patch delta 5114 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 delta 4927 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 delta 4927 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 delta 4927 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-dimmed-linux.png index e218ec5b0cd17ee3a3ccc28bd72ad15f078e0771..f5ab3fc8b55a8b327656276df682c8a0c7a48513 100644 GIT binary patch delta 5157 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-high-contrast-linux.png index 1d8e74c1f75af8b9e85f4cfdbe2caa41cd40d38b..baf44f68958b43db89a4b23ae22a6dfbc4a4e5b6 100644 GIT binary patch delta 5172 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 delta 5010 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 jfh}+J3IEXF1nxc8JrZ2 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-tritanopia-linux.png index 7b494e5c706d7c4006920874ab43a33024ad3a40..9f2e9f306825e25c1bc214ad0d1f4a485a9535ab 100644 GIT binary patch delta 5184 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 delta 5006 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-colorblind-linux.png index a4fe17ed97bff06660cde73aa660f8c8087ffeb6..277a20c467a2ecb5ba07601ecf587214ee33ad1e 100644 GIT binary patch delta 5114 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 delta 4927 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 delta 4927 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 delta 4927 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 = [] - const addPage = (n: number) => { - if (n >= 1 && n <= pageCount) { - pageNums.push(n) - } - } + if (pageCount <= 0) { + return [prev, {...next, disabled: true}] + } - // Start by defining the window of pages to show around the current page. - // If the window goes off either edge, shift it until it fits. - let extentLeft = currentPage - surroundingPageCount - let extentRight = currentPage + surroundingPageCount - if (extentLeft < 1 && extentRight > pageCount) { - // Our window is larger than the entire range, - // so simply display every page. - extentLeft = 1 - extentRight = pageCount - } else if (extentLeft < 1) { - while (extentLeft < 1) { - extentLeft++ - extentRight++ - } - } else if (extentRight > pageCount) { - while (extentRight > pageCount) { - extentLeft-- - extentRight-- - } - } + const pages: PageType[] = [] - // Next, include the pages in the margins. - // If a margin page is already covered in the window, - // extend the window to the other direction. - for (let i = 1; i <= marginPageCount; i++) { - const leftPage = i - const rightPage = pageCount - (i - 1) - if (leftPage >= extentLeft) { - extentRight++ - } else { - addPage(leftPage) - } - if (rightPage <= extentRight) { - extentLeft-- - } else { - addPage(rightPage) - } - } + // number of pages shown on each side of the current page + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // standardGap: 3 + const standardGap = surroundingPageCount + marginPageCount - for (let i = extentLeft; i <= extentRight; i++) { - addPage(i) - } + // the maximum number of pages that can be shown at a given time + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // maxVisiblePages: 7 + const maxVisiblePages = standardGap + standardGap + 1 - const sorted = pageNums - .slice() - .sort((a, b) => a - b) - .filter((item, idx, ary) => !idx || item !== ary[idx - 1]) - for (let idx = 0; idx < sorted.length; idx++) { - const num = sorted[idx] - const selected = num === currentPage - const last = sorted[idx - 1] - const next = sorted[idx + 1] - const lastDelta = num - last - const nextDelta = num - next - const precedesBreak = nextDelta !== -1 - - if (idx === 0) { - if (num !== 1) { - // If the first page isn't page one, - // we need to add a break - pages.push({ - type: 'BREAK', - num: 1, - }) - } - pages.push({ - type: 'NUM', - num, - selected, - precedesBreak, - }) - } else { - if (lastDelta === 1) { - pages.push({ - type: 'NUM', - num, - selected, - precedesBreak, - }) - } else { - // We skipped some, so add a break - pages.push({ - type: 'BREAK', - num: num - 1, - }) - pages.push({ - type: 'NUM', - num, - selected, - precedesBreak: false, - }) - } - } - } + // if the number of pages is less than the maximum number of pages that can be shown just return all of them + if (pageCount <= maxVisiblePages) { + addPages(1, pageCount, false) + return [prev, ...pages, next] + } + + // startGap is the number of pages hidden by the start ellipsis + // startOffset is the number of pages to offset at the start to compensate + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // startGap: 5 + // startOffset: 0 + // when the margin and the surrounding windows overlap. + // [1, _2_, 3, 4, 5, 6, ..., 15] + // startGap = 0 + // startOffset: -3 <-- + let startGap = 0 + let startOffset = 0 - const lastPage = pages[pages.length - 1] - if (lastPage.type === 'NUM' && lastPage.num !== pageCount) { - // The last page we rendered wasn't the actual last page, - // so we need an additional break + // When there is overlap + if (currentPage - standardGap - 1 <= 1) { + startOffset = currentPage - standardGap - 2 + } else { + startGap = currentPage - standardGap - 1 + } + + // These are equivalent to startGap and startOffset but at the end of the list + let endGap = 0 + let endOffset = 0 + + // When there is overlap + if (pageCount - currentPage - standardGap <= 1) { + endOffset = pageCount - currentPage - standardGap - 1 + } else { + endGap = pageCount - currentPage - standardGap + } + + const hasStartEllipsis = startGap > 0 + const hasEndEllipsis = endGap > 0 + + // add pages "before" the start ellipsis (if any) + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // marginPageCount: 1 + // addPages(1, 1, true) + addPages(1, marginPageCount, hasStartEllipsis) + + if (hasStartEllipsis) { + addEllipsis(marginPageCount) + } + + // add middle pages + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // marginPageCount: 1 + // surroundingPageCount: 2 + // startGap: 5 + // startOffset: 0 + // endGap: 3 + // endOffset: 0 + // addPages(7, 11, true) + addPages( + marginPageCount + startGap + endOffset + 1, + pageCount - startOffset - endGap - marginPageCount, + hasEndEllipsis, + ) + + if (hasEndEllipsis) { + addEllipsis(pageCount - startOffset - endGap - marginPageCount) + } + + // add pages "after" the start ellipsis (if any) + // [1, ..., 7, 8, _9_, 10, 11, ..., 15] + // marginPageCount: 1 + // surroundingPageCount: 2 + // startGap: 5 + // startOffset: 0 + // endGap: 3 + // endOffset: 0 + // addPages(15, 15) + addPages(pageCount - marginPageCount + 1, pageCount) + + return [prev, ...pages, next] + + function addEllipsis(previousPage: number): void { + pages.push({ + type: 'BREAK', + num: previousPage + 1, + }) + } + + function addPages(start: number, end: number, precedesBreak: boolean = false): void { + for (let i = start; i <= end; i++) { pages.push({ - type: 'BREAK', - num: pageCount, + type: 'NUM', + num: i, + selected: i === currentPage, + precedesBreak: i === end && precedesBreak, }) } } - - const prev = {type: 'PREV', num: currentPage - 1, disabled: currentPage === 1} - const next = {type: 'NEXT', num: currentPage + 1, disabled: currentPage === pageCount} - return [prev, ...pages, next] } type PageType = { @@ -148,7 +149,7 @@ export function buildComponentData( key = 'page-prev' content = 'Previous' if (page.disabled) { - Object.assign(props, {'aria-hidden': 'true'}) + Object.assign(props, {rel: 'prev', 'aria-hidden': 'true'}) } else { Object.assign(props, { rel: 'prev', @@ -163,7 +164,7 @@ export function buildComponentData( key = 'page-next' content = 'Next' if (page.disabled) { - Object.assign(props, {'aria-hidden': 'true'}) + Object.assign(props, {rel: 'next', 'aria-hidden': 'true'}) } else { Object.assign(props, { rel: 'next', diff --git a/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx b/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx index 3a3ba2e6273..a7ca5a88c1e 100644 --- a/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx +++ b/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx @@ -14,6 +14,170 @@ function last(array: Array, count = 1) { } describe('Pagination model', () => { + it('correctly handles negative pages', () => { + const model = buildPaginationModel(-10, 1, true, 1, 2) + expect(first(model).type).toEqual('PREV') + expect(first(model).disabled).toBe(true) + expect(last(model).type).toEqual('NEXT') + expect(last(model).disabled).toBe(true) + expect(model.length).toBe(2) + }) + + it('correctly handles zero pages', () => { + const model = buildPaginationModel(0, 1, true, 1, 2) + expect(first(model).type).toEqual('PREV') + expect(first(model).disabled).toBe(true) + expect(last(model).type).toEqual('NEXT') + expect(last(model).disabled).toBe(true) + expect(model.length).toBe(2) + }) + + it('correctly handles 1 page', () => { + const model = buildPaginationModel(1, 1, true, 1, 2) + expect(first(model).type).toEqual('PREV') + expect(first(model).disabled).toBe(true) + expect(last(model).type).toEqual('NEXT') + expect(last(model).disabled).toBe(true) + expect(model.length).toBe(3) + }) + + it('correctly handles zero margin pages', () => { + const model = buildPaginationModel(6, 2, true, 0, 2) + + const expected = [ + { + type: 'PREV', + num: 1, + disabled: false, + }, + { + type: 'NUM', + num: 1, + selected: false, + precedesBreak: false, + }, + { + type: 'NUM', + num: 2, + selected: true, + precedesBreak: false, + }, + { + type: 'NUM', + num: 3, + selected: false, + precedesBreak: false, + }, + { + type: 'NUM', + num: 4, + selected: false, + precedesBreak: false, + }, + { + type: 'NUM', + num: 5, + selected: false, + precedesBreak: false, + }, + { + type: 'NUM', + num: 6, + selected: false, + precedesBreak: true, + }, + { + type: 'BREAK', + num: 7, + }, + { + type: 'NEXT', + num: 3, + disabled: false, + }, + ] + + expect(model).toMatchObject(expected) + }) + + it('correctly handles zero surrounding pages', () => { + const model = buildPaginationModel(7, 4, true, 1, 0) + + const expected = [ + { + type: 'PREV', + num: 3, + disabled: false, + }, + { + type: 'NUM', + num: 1, + selected: false, + precedesBreak: true, + }, + { + type: 'BREAK', + num: 2, + }, + { + type: 'NUM', + num: 4, + selected: true, + precedesBreak: true, + }, + { + type: 'BREAK', + num: 5, + }, + { + type: 'NUM', + num: 7, + selected: false, + precedesBreak: false, + }, + { + type: 'NEXT', + num: 5, + disabled: false, + }, + ] + + expect(model).toMatchObject(expected) + }) + + it('correctly handles zero margin and surrounding pages', () => { + const model = buildPaginationModel(50, 3, true, 0, 0) + + const expected = [ + { + type: 'PREV', + num: 2, + disabled: false, + }, + { + type: 'BREAK', + num: 1, + }, + { + type: 'NUM', + num: 3, + selected: true, + precedesBreak: true, + }, + { + type: 'BREAK', + num: 4, + }, + { + type: 'NEXT', + num: 4, + disabled: false, + }, + ] + + expect(model).toMatchObject(expected) + }) + it('sets disabled on prev links', () => { const model1 = buildPaginationModel(10, 1, true, 1, 2) expect(first(model1).type).toEqual('PREV') @@ -94,26 +258,60 @@ describe('Pagination model', () => { {type: 'NUM', num: 2, selected: true}, {type: 'NUM', num: 3}, // normally with a surround of 1, only 1 and 3 would be shown - // however, since 1 was already shown, we extend to 4 - {type: 'NUM', num: 4, precedesBreak: true}, + // however, since we don't overlap, the window is extended to 5 + {type: 'NUM', num: 4}, + {type: 'NUM', num: 5, precedesBreak: true}, {type: 'BREAK'}, ] - expect(first(model, 6)).toMatchObject(expected) + expect(first(model, 7)).toMatchObject(expected) }) it('adds items to the left if it hits bounds to the right', () => { const model = buildPaginationModel(15, 14, true, 1, 1) const expected = [ // normally with a surround of 1, only 13 and 15 would be shown - // however, since 15 was already shown, we extend to 12 + // however, since we don't overlap, the window is extended to 11 {type: 'BREAK'}, + {type: 'NUM', num: 11}, {type: 'NUM', num: 12}, {type: 'NUM', num: 13}, {type: 'NUM', num: 14, selected: true}, {type: 'NUM', num: 15}, {type: 'NEXT', num: 15}, ] - expect(last(model, 6)).toMatchObject(expected) + expect(last(model, 7)).toMatchObject(expected) + }) + + it('adds a page when there would be only one page hidden by the left ellipsis', () => { + const model = buildPaginationModel(15, 5, true, 1, 2) + const expected = [ + {type: 'PREV', num: 4}, + {type: 'NUM', num: 1}, + {type: 'NUM', num: 2}, + {type: 'NUM', num: 3}, + {type: 'NUM', num: 4}, + {type: 'NUM', num: 5, selected: true}, + {type: 'NUM', num: 6}, + {type: 'NUM', num: 7, precedesBreak: true}, + {type: 'BREAK'}, + ] + expect(first(model, 9)).toMatchObject(expected) + }) + + it('adds a page when there would be only one page hidden by the right ellipsis', () => { + const model = buildPaginationModel(15, 11, true, 1, 2) + const expected = [ + {type: 'BREAK'}, + {type: 'NUM', num: 9}, + {type: 'NUM', num: 10}, + {type: 'NUM', num: 11, selected: true}, + {type: 'NUM', num: 12}, + {type: 'NUM', num: 13}, + {type: 'NUM', num: 14}, + {type: 'NUM', num: 15}, + {type: 'NEXT', num: 12}, + ] + expect(last(model, 9)).toMatchObject(expected) }) it('correctly creates breaks next to the next/prev links when margin is 0', () => { @@ -124,7 +322,7 @@ describe('Pagination model', () => { {type: 'NUM', num: 4}, {type: 'NUM', num: 5, selected: true}, {type: 'NUM', num: 6, precedesBreak: true}, - {type: 'BREAK', num: 10}, + {type: 'BREAK', num: 7}, {type: 'NEXT'}, ] expect(model).toMatchObject(expected) From 00e0f8782f896ccc08f679a16691c4125a38bda2 Mon Sep 17 00:00:00 2001 From: Kendall Gassner Date: Thu, 16 Jan 2025 12:05:24 -0800 Subject: [PATCH 04/28] [Accessibility][Storybook] Add an aria-label on the calendar icon in the storybook loading example (#5550) --- .../TextInput/TextInput.features.stories.tsx | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/react/src/TextInput/TextInput.features.stories.tsx b/packages/react/src/TextInput/TextInput.features.stories.tsx index bda1ff99d3c..cbbc0b5f018 100644 --- a/packages/react/src/TextInput/TextInput.features.stories.tsx +++ b/packages/react/src/TextInput/TextInput.features.stories.tsx @@ -189,6 +189,8 @@ export const WithTooltipDirection = () => { ) } +const Calendar = () => + export const WithLoadingIndicator = (args: FormControlArgs) => { return ( @@ -219,19 +221,19 @@ export const WithLoadingIndicator = (args: FormControlArgs) => { Default label - + Default label - + Default label - + @@ -240,19 +242,19 @@ export const WithLoadingIndicator = (args: FormControlArgs) => { Default label - + Default label - + Default label - + @@ -262,15 +264,15 @@ export const WithLoadingIndicator = (args: FormControlArgs) => { Default label - + Default label ) => { Default label Date: Thu, 16 Jan 2025 16:33:06 -0500 Subject: [PATCH 05/28] adds JSON files for our hooks' APIs, adds a script to build one large JSON file for all hooks (#5554) adds hooks build to 'build-components-json' in CI --- .github/workflows/ci.yml | 3 + package.json | 1 + packages/react/package.json | 1 + packages/react/script/hooks-json/build.ts | 48 +++++ .../react/script/hooks-json/hook.schema.json | 130 +++++++++++++ .../script/hooks-json/output.schema.json | 21 ++ .../useConfirm.hookDocs.json | 53 +++++ .../FeatureFlags/useFeatureFlag.hookDocs.json | 17 ++ ...useFormControlForwardedProps.hookDocs.json | 43 +++++ .../react/src/hooks/useDetails.hookDocs.json | 88 +++++++++ .../src/hooks/useFocusTrap.hookDocs.json | 77 ++++++++ .../src/hooks/useFocusZone.hookDocs.json | 182 ++++++++++++++++++ .../src/hooks/useOnEscapePress.hookDocs.json | 23 +++ .../src/hooks/useOnOutsideClick.hookDocs.json | 40 ++++ .../hooks/useOpenAndCloseFocus.hookDocs.json | 46 +++++ .../react/src/hooks/useOverflow.hookDocs.json | 17 ++ .../react/src/hooks/useOverlay.hookDocs.json | 56 ++++++ .../useProvidedRefOrCreate.hookDocs.json | 15 ++ .../useRefObjectAsForwardedRef.hookDocs.json | 22 +++ .../src/hooks/useResizeObserver.hookDocs.json | 40 ++++ .../hooks/useResponsiveValue.hookDocs.json | 45 +++++ .../src/hooks/useSafeTimeout.hookDocs.json | 42 ++++ .../react/src/useColorSchemeVar.hookDocs.json | 23 +++ .../useIsomorphicLayoutEffect.hookDocs.json | 9 + .../react/src/utils/useTheme.hookDocs.json | 96 +++++++++ 25 files changed, 1138 insertions(+) create mode 100644 packages/react/script/hooks-json/build.ts create mode 100644 packages/react/script/hooks-json/hook.schema.json create mode 100644 packages/react/script/hooks-json/output.schema.json create mode 100644 packages/react/src/ConfirmationDialog/useConfirm.hookDocs.json create mode 100644 packages/react/src/FeatureFlags/useFeatureFlag.hookDocs.json create mode 100644 packages/react/src/FormControl/useFormControlForwardedProps.hookDocs.json create mode 100644 packages/react/src/hooks/useDetails.hookDocs.json create mode 100644 packages/react/src/hooks/useFocusTrap.hookDocs.json create mode 100644 packages/react/src/hooks/useFocusZone.hookDocs.json create mode 100644 packages/react/src/hooks/useOnEscapePress.hookDocs.json create mode 100644 packages/react/src/hooks/useOnOutsideClick.hookDocs.json create mode 100644 packages/react/src/hooks/useOpenAndCloseFocus.hookDocs.json create mode 100644 packages/react/src/hooks/useOverflow.hookDocs.json create mode 100644 packages/react/src/hooks/useOverlay.hookDocs.json create mode 100644 packages/react/src/hooks/useProvidedRefOrCreate.hookDocs.json create mode 100644 packages/react/src/hooks/useRefObjectAsForwardedRef.hookDocs.json create mode 100644 packages/react/src/hooks/useResizeObserver.hookDocs.json create mode 100644 packages/react/src/hooks/useResponsiveValue.hookDocs.json create mode 100644 packages/react/src/hooks/useSafeTimeout.hookDocs.json create mode 100644 packages/react/src/useColorSchemeVar.hookDocs.json create mode 100644 packages/react/src/utils/useIsomorphicLayoutEffect.hookDocs.json create mode 100644 packages/react/src/utils/useTheme.hookDocs.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5db06240809..586552bdbdf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -414,6 +414,9 @@ jobs: - name: Build components.json run: npx tsx script/components-json/build.ts --storybook-data 'storybook-static/index.json' working-directory: packages/react + - name: Build hooks.json + run: npx tsx script/hooks-json/build.ts' + working-directory: packages/react sizes: runs-on: ubuntu-latest diff --git a/package.json b/package.json index f0ce5971078..6d5cc1554a5 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "build:docs": "NODE_OPTIONS=--openssl-legacy-provider script/build-docs", "build:docs:preview": "NODE_OPTIONS=--openssl-legacy-provider script/build-docs preview", "build:components.json": "npm run build:components.json -w @primer/react", + "build:hooks.json": "npm run build:hooks.json -w @primer/react", "lint": "eslint '**/*.{js,ts,tsx,md,mdx}' --max-warnings=0", "lint:css": "stylelint --rd -q '**/*.css'", "lint:css:fix": "npm run lint:css -- --fix", diff --git a/packages/react/package.json b/packages/react/package.json index 9c8ea3eeffe..1b889e3eaf8 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -43,6 +43,7 @@ "build:docs": "NODE_OPTIONS=--openssl-legacy-provider script/build-docs", "build:docs:preview": "NODE_OPTIONS=--openssl-legacy-provider script/build-docs preview", "build:components.json": "tsx script/components-json/build.ts", + "build:hooks.json": "tsx script/hooks-json/build.ts", "build:precompile-color-schemes": "tsx script/precompile-color-schemes.ts", "storybook": "storybook", "type-check": "tsc --noEmit" diff --git a/packages/react/script/hooks-json/build.ts b/packages/react/script/hooks-json/build.ts new file mode 100644 index 00000000000..4c20cc200ec --- /dev/null +++ b/packages/react/script/hooks-json/build.ts @@ -0,0 +1,48 @@ +import glob from 'fast-glob' +import fs from 'fs' +import keyBy from 'lodash.keyby' +import hookSchema from '../hooks-json/hook.schema.json' +import outputSchema from './output.schema.json' +import Ajv from 'ajv' + +// Only includes fields we use in this script +type Hook = { + name: string + importPath: '@primer/react' | '@primer/react/experimental' + stories: Array<{id: string}> +} + +const ajv = new Ajv() + +const hookDocsFiles = glob.sync('src/**/*.hookDocs.json') + +const hooks = hookDocsFiles.map(docsFilepath => { + const docs = JSON.parse(fs.readFileSync(docsFilepath, 'utf-8')) + + // Create a validator for the hook schema + const validate = ajv.compile(hookSchema) + + // Validate the hook schema + if (!validate(docs)) { + throw new Error(`Invalid docs file ${docsFilepath}: ${JSON.stringify(validate.errors, null, 2)}}`) + } + + return docs +}) + +const data = {schemaVersion: 2, hooks: keyBy(hooks, 'name')} + +// Validate output +const validate = ajv.compile(outputSchema) + +if (!validate(data)) { + throw new Error(`Invalid output: ${JSON.stringify(validate.errors, null, 2)}}`) +} + +// Create `generated` directory if it doesn't exist +if (!fs.existsSync('generated')) { + fs.mkdirSync('generated') +} + +// Write hooks.json file +fs.writeFileSync('generated/hooks.json', JSON.stringify(data, null, 2)) diff --git a/packages/react/script/hooks-json/hook.schema.json b/packages/react/script/hooks-json/hook.schema.json new file mode 100644 index 00000000000..8263edd6c9c --- /dev/null +++ b/packages/react/script/hooks-json/hook.schema.json @@ -0,0 +1,130 @@ +{ + "$id": "hook.schema.json", + "type": "object", + "required": ["name", "stories", "importPath"], + "additionalProperties": false, + "definitions": { + "parameter": { + "type": "object", + "required": ["name", "type"], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "type": { + "type": "string", + "description": "The type of the parameter in valid TypeScript syntax." + }, + "defaultValue": { + "type": "string", + "description": "The default value of the parameter if defined." + }, + "required": { + "type": "boolean", + "description": "Indicate whether the parameter is required." + }, + "deprecated": { + "type": "boolean", + "description": "Indicate whether the parameter is deprecated." + }, + "description": { + "type": "string", + "description": "A concise description of the parameter." + } + } + }, + "relatedTypeProperty": { + "type": "object", + "required": ["name", "type"], + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the property." + }, + "type": { + "type": "string", + "description": "The type of the property in valid TypeScript syntax." + }, + "required": { + "type": "boolean", + "description": "Indicate whether the property is required." + }, + "defaultValue": { + "type": "string", + "description": "The default value of the property if defined." + }, + "description": { + "type": "string", + "description": "A concise description of the property." + } + } + }, + "story": { + "type": "object", + "required": ["id"], + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "description": "The Storybook story ID (e.g. \"hooks-usecolorschemevar--default\")." + } + } + } + }, + "properties": { + "name": { + "type": "string", + "description": "The name of the hook." + }, + "importPath": { + "type": "string", + "description": "The path to import the hook from. i.e. '@primer/react/experimental'" + }, + "stories": { + "type": "array", + "description": "An array of Storybook story IDs to embed in the docs.", + "items": { + "$ref": "#/definitions/story" + } + }, + "parameters": { + "type": "array", + "description": "An array of parameters the hook accepts.", + "items": { + "$ref": "#/definitions/parameter" + } + }, + "returns": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of the returned value in valid TypeScript syntax." + } + } + }, + "relatedTypes": { + "type": "array", + "description": "An array of the types or interfaces related to the hook.", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the type or interface." + }, + "properties": { + "type": "array", + "description": "An array of the properties in the type or interface.", + "items": { + "$ref": "#/definitions/relatedTypeProperty" + } + } + } + } + } + } +} diff --git a/packages/react/script/hooks-json/output.schema.json b/packages/react/script/hooks-json/output.schema.json new file mode 100644 index 00000000000..f51a607c56c --- /dev/null +++ b/packages/react/script/hooks-json/output.schema.json @@ -0,0 +1,21 @@ +{ + "$id": "output.schema.json", + "type": "object", + "required": ["schemaVersion", "hooks"], + "properties": { + "schemaVersion": { + "type": "number", + "enum": [2], + "description": "The version of the schema. We increment this when we make breaking changes to the schema." + }, + "hooks": { + "type": "object", + "description": "Metadata about exported by @primer/react.", + "patternProperties": { + ".*": { + "$ref": "./hook.schema.json#" + } + } + } + } +} diff --git a/packages/react/src/ConfirmationDialog/useConfirm.hookDocs.json b/packages/react/src/ConfirmationDialog/useConfirm.hookDocs.json new file mode 100644 index 00000000000..b9220ed0afa --- /dev/null +++ b/packages/react/src/ConfirmationDialog/useConfirm.hookDocs.json @@ -0,0 +1,53 @@ +{ + "name": "useConfirm", + "importPath": "@primer/react", + "stories": [ + { + "id": "components-confirmationdialog-features--shorthand-hook" + }, + { + "id": "components-confirmationdialog-features--shorthand-hook-from-action-menu" + } + ], + "returns": { + "type": "(options: ConfirmOptions) => Promise", + "description": "An async function that shows a confirmation dialog and resolves with a boolean indicating whether the confirm button was used." + }, + "relatedTypes": [ + { + "name": "ConfirmOptions", + "properties": [ + { + "name": "title", + "type": "React.ReactNode", + "required": true, + "description": "The title of the ConfirmationDialog. This is usually a brief question." + }, + { + "name": "content", + "type": "React.ReactNode", + "required": true, + "description": "ConfirmationDialog body content." + }, + { + "name": "cancelButtonContent", + "type": "React.ReactNode", + "defaultValue": "Cancel", + "description": "The text to use for the cancel button." + }, + { + "name": "confirmButtonContent", + "type": "React.ReactNode", + "defaultValue": "OK", + "description": "The text to use for the confirm button." + }, + { + "name": "confirmButtonType", + "type": "\"normal\" | \"primary\" | \"danger\"", + "defaultValue": "normal", + "description": "The type of button to use for the confirm button." + } + ] + } + ] +} diff --git a/packages/react/src/FeatureFlags/useFeatureFlag.hookDocs.json b/packages/react/src/FeatureFlags/useFeatureFlag.hookDocs.json new file mode 100644 index 00000000000..d36b0f8ff41 --- /dev/null +++ b/packages/react/src/FeatureFlags/useFeatureFlag.hookDocs.json @@ -0,0 +1,17 @@ +{ + "name": "useFeatureFlag", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "flag", + "type": "string", + "required": true, + "description": "The feature flag ID." + } + ], + "returns": { + "type": "boolean", + "description": "Whether the feature flag is enabled." + } +} diff --git a/packages/react/src/FormControl/useFormControlForwardedProps.hookDocs.json b/packages/react/src/FormControl/useFormControlForwardedProps.hookDocs.json new file mode 100644 index 00000000000..c506455337c --- /dev/null +++ b/packages/react/src/FormControl/useFormControlForwardedProps.hookDocs.json @@ -0,0 +1,43 @@ +{ + "name": "useFormControlForwardedProps", + "importPath": "@primer/react", + "stories": [{"id": "hooks-useformcontrolforwardedprops--autowired-custom-input"}], + "parameters": [ + { + "name": "externalProps", + "type": "P", + "required": true, + "description": "The external props passed to this component. If provided, these props will be merged with the `FormControl` props, with external props taking priority." + } + ], + "returns": { + "type": "P & FormControlForwardedProps" + }, + "relatedTypes": [ + { + "name": "FormControlForwardedProps", + "properties": [ + { + "name": "disabled", + "type": "boolean", + "description": "Indicates if the form control is disabled." + }, + { + "name": "id", + "type": "string", + "description": "The id of the form control." + }, + { + "name": "required", + "type": "boolean", + "description": "Indicates if the form control is required." + }, + { + "name": "aria-describedby", + "type": "string", + "description": "The id of the element that describes the form control." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useDetails.hookDocs.json b/packages/react/src/hooks/useDetails.hookDocs.json new file mode 100644 index 00000000000..f57f861cde5 --- /dev/null +++ b/packages/react/src/hooks/useDetails.hookDocs.json @@ -0,0 +1,88 @@ +{ + "name": "useDetails", + "importPath": "@primer/react", + "stories": [ + { + "id": "components-details--default" + } + ], + "parameters": [ + { + "name": "options", + "type": "UseDetailsParameters", + "required": true + } + ], + "returns": { + "type": "UseDetailsReturn" + }, + "relatedTypes": [ + { + "name": "UseDetailsReturn", + "properties": [ + { + "name": "open", + "type": "boolean", + "description": "Whether the details element is open." + }, + { + "name": "setOpen", + "type": "React.Dispatch>", + "description": "A function to set the open state." + }, + { + "name": "getDetailsProps", + "type": "() => DetailsProps", + "description": "A function to get the props to attach to the details element." + } + ] + }, + { + "name": "DetailsProps", + "properties": [ + { + "name": "onToggle", + "type": "(e: React.SyntheticEvent) => void", + "description": "Callback function to handle toggling the details element." + }, + { + "name": "open", + "type": "boolean", + "description": "Whether the details element is open." + }, + { + "name": "ref", + "type": "React.RefObject", + "description": "A ref object to attach to the details element." + } + ] + }, + { + "name": "UseDetailsParameters", + "properties": [ + { + "name": "ref", + "type": "React.RefObject", + "description": "A ref object to attach to the details element." + }, + { + "name": "closeOnOutsideClick", + "type": "boolean", + "defaultValue": "false", + "description": "Whether to close the details element when clicking outside of it." + }, + { + "name": "defaultOpen", + "type": "boolean", + "defaultValue": "false", + "description": "Whether the details element is open by default." + }, + { + "name": "onClickOutside", + "type": "(event: MouseEvent) => void", + "description": "Callback function to handle clicks outside the details element." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useFocusTrap.hookDocs.json b/packages/react/src/hooks/useFocusTrap.hookDocs.json new file mode 100644 index 00000000000..3085f420df2 --- /dev/null +++ b/packages/react/src/hooks/useFocusTrap.hookDocs.json @@ -0,0 +1,77 @@ +{ + "name": "useFocusTrap", + "importPath": "@primer/react", + "stories": [ + {"id": "hooks-usefocustrap--custom-initial-focus"}, + {"id": "hooks-usefocustrap--dynamic-focus-trap-contents"}, + {"id": "hooks-usefocustrap--focus-trap"}, + {"id": "hooks-usefocustrap--multiple-focus-traps"}, + {"id": "hooks-usefocustrap--restore-focus"} + ], + "parameters": [ + { + "name": "settings", + "type": "FocusTrapSettings", + "required": true, + "description": "Configuration options for the focus trap." + }, + { + "name": "dependencies", + "type": "Array", + "required": true, + "defaultValue": "[]", + "description": "React.DependencyList" + } + ], + "relatedTypes": [ + { + "name": "FocusTrapSettings", + "properties": [ + { + "name": "containerRef", + "type": "React.RefObject", + "description": "Ref that will be used for the trapping container. If not provided, one will be created by this hook and returned." + }, + { + "name": "initialFocusRef", + "type": "React.RefObject", + "description": "Ref for the element that should receive focus when the focus trap is first enabled. If not provided, one will be created by this hook and returned. Its use is optional." + }, + { + "name": "disabled", + "type": "boolean", + "description": "Set to true to disable the focus trap and clean up listeners. Can be re-enabled at any time." + }, + { + "name": "restoreFocusOnCleanUp", + "type": "boolean", + "description": "If true, when this focus trap is cleaned up, restore focus to the element that had focus immediately before the focus trap was enabled. (Default: false)" + }, + { + "name": "returnFocusRef", + "type": "React.RefObject", + "description": "If passed, when this focus trap is cleaned up, restore focus to this element instead of element with focus immediately before the focus trap was enabled. Overrides `restoreFocusOnCleanUp`." + } + ] + }, + { + "name": "FocusTrapRefs", + "properties": [ + { + "name": "containerRef", + "type": "React.RefObject", + "description": "Ref that will be used for the trapping container." + }, + { + "name": "initialFocusRef", + "type": "React.RefObject", + "description": "Ref for the child element that will receive focus first." + } + ] + } + ], + "returns": { + "type": "FocusTrapRefs", + "description": "The refs for the trapping container and the initial focus element." + } +} diff --git a/packages/react/src/hooks/useFocusZone.hookDocs.json b/packages/react/src/hooks/useFocusZone.hookDocs.json new file mode 100644 index 00000000000..0e9a6a33429 --- /dev/null +++ b/packages/react/src/hooks/useFocusZone.hookDocs.json @@ -0,0 +1,182 @@ +{ + "name": "useFocusZone", + "importPath": "@primer/react", + "stories": [ + {"id": "hooks-usefocuszone--active-descendant"}, + {"id": "hooks-usefocuszone--basic-focus-zone"}, + {"id": "hooks-usefocuszone--changing-subtree"}, + {"id": "hooks-usefocuszone--custom-focus-movement"}, + {"id": "hooks-usefocuszone--focus-in-strategy"}, + {"id": "hooks-usefocuszone--focus-out-behavior"}, + {"id": "hooks-usefocuszone--nested-zones"}, + {"id": "hooks-usefocuszone--special-situations"} + ], + "parameters": [ + { + "name": "settings", + "type": "FocusZoneHookSettings", + "description": "Configuration options for the focus zone." + }, + { + "name": "dependencies", + "type": "React.DependencyList", + "required": true, + "defaultValue": "[]" + } + ], + "relatedTypes": [ + { + "name": "FocusZoneHookSettings", + "properties": [ + { + "name": "containerRef", + "type": "React.RefObject", + "description": "Optional ref for the container that holds all elements participating in arrow key focus. If one is not passed, we will create one for you and return it from the hook." + }, + { + "name": "activeDescendantFocus", + "type": "boolean | React.RefObject", + "description": "If using the 'active descendant' focus pattern, pass `true` or a ref to the controlling element. If a ref object is not passed, we will create one for you." + }, + { + "name": "disabled", + "type": "boolean", + "description": "Set to true to disable the focus zone and clean up listeners. Can be re-enabled at any time." + }, + { + "name": "focusOutBehavior", + "type": "'stop' | 'wrap'", + "description": "Defines the behavior when focus moves out of the focus zone. Can be 'stop' or 'wrap'." + }, + { + "name": "getNextFocusable", + "type": "(direction: 'previous' | 'next' | 'start' | 'end', from: Element | undefined, event: KeyboardEvent) => HTMLElement | undefined", + "description": "Function to determine the next focusable element in the given direction." + }, + { + "name": "focusableElementFilter", + "type": "(element: HTMLElement) => boolean", + "description": "Function to filter which elements are focusable." + }, + { + "name": "bindKeys", + "type": "enum FocusKeys {\nArrowHorizontal = 1,\nArrowVertical = 2,\nJK = 4,\nHL = 8,\nHomeAndEnd = 16,\nPageUpDown = 256,\nWS = 32,\nAD = 64,\nTab = 128,\nBackspace = 512,\nArrowAll = 3,\nHJKL = 12,\nWASD = 96,\nAll = 511\n}", + "defaultValue": "FocusKeys.ArrowVertical", + "description": "Keys that should be used to move focus within the focus zone." + }, + { + "name": "abortSignal", + "type": "AbortSignal", + "description": "Signal to abort the focus zone." + }, + { + "name": "activeDescendantControl", + "type": "HTMLElement", + "description": "Element that controls the active descendant." + }, + { + "name": "focusInStrategy", + "type": "'first' | 'closest' | 'previous' | ((previousFocusedElement: Element) => HTMLElement | undefined)", + "description": "Strategy to determine which element receives focus when entering the focus zone." + }, + { + "name": "preventScroll", + "type": "boolean", + "description": "Prevents scrolling when focusing elements." + } + ] + }, + { + "name": "FocusZoneRefs", + "properties": [ + { + "name": "containerRef", + "type": "React.RefObject", + "description": "Ref that will be used for the element with the children focus will be moved between." + }, + { + "name": "initialFocusRef", + "type": "React.RefObject", + "description": "Ref for the child element that will receive focus first." + } + ] + }, + { + "name": "FocusKeys (enum)", + "properties": [ + { + "name": "ArrowHorizontal", + "type": "1", + "description": "Left and right arrow keys. Prevents default behavior of scrolling where applicable." + }, + { + "name": "ArrowVertical", + "type": "2", + "description": "Up and down arrow keys. Prevents default behavior of scrolling where applicable." + }, + { + "name": "ArrowAll", + "type": "3", + "description": "Left, right, up, and down arrow keys. Prevents default behavior of scrolling where applicable." + }, + { + "name": "HomeAndEnd", + "type": "16", + "description": "Home and end keys. Causes focus to jump to the first or last focusable item in the container. Does not move focus if the currently-focused element is a text box." + }, + { + "name": "PageUpDown", + "type": "256", + "description": "Works the same as the Home and End keys. Advisable only when supplying a custom callback that supports paging." + }, + { + "name": "JK", + "type": "4", + "description": "J moves focus to the next item, K moves to the previous. Does not move focus if the currently-focused element is a text box. [Originally from](https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys) the vi keybindings" + }, + { + "name": "HL", + "type": "8", + "description": "H moves focus to the previous item, L moves to the next. Does not move focus if the currently-focused element is a text box. [Originally from](https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys) the vi keybindings" + }, + { + "name": "WS", + "type": "32", + "description": "W moves focus to the previous item, S moves to the next. Does not move focus if the currently-focused element is a text box." + }, + { + "name": "AD", + "type": "64", + "description": "A moves focus to the previous item, D moves to the next. Does not move focus if the currently-focused element is a text box." + }, + { + "name": "HJKL", + "type": "12" + }, + { + "name": "WASD", + "type": "96" + }, + { + "name": "Tab", + "type": "128", + "description": "Unlike other keys, the Tab key will always allow movement outside of the focus zone (use the Focus Trap behavior to prevent this). Tab moves to the next item, Shift+Tab moves to the previous." + }, + { + "name": "Backspace", + "type": "512", + "description": "Moves focus to the previous item. Does not move focus if the currently-focused element is a text box." + }, + { + "name": "All", + "type": "511", + "description": "All keys listed above are bound." + } + ] + } + ], + "returns": { + "type": "FocusZoneRefs", + "description": "The refs for the trapping container and the initial focus element." + } +} diff --git a/packages/react/src/hooks/useOnEscapePress.hookDocs.json b/packages/react/src/hooks/useOnEscapePress.hookDocs.json new file mode 100644 index 00000000000..a1242f30bcc --- /dev/null +++ b/packages/react/src/hooks/useOnEscapePress.hookDocs.json @@ -0,0 +1,23 @@ +{ + "name": "useOnEscapePress", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "onEscape", + "type": "(e: KeyboardEvent) => void", + "required": true, + "description": "The callback that gets executed when the Escape key is pressed. The KeyboardEvent generated by the Escape keypress is passed as the only argument." + }, + { + "name": "callbackDependencies", + "type": "React.DependencyList", + "defaultValue": "[onEscape]", + "required": true, + "description": "The dependencies of the given `onEscape` callback for memoization. Omit this param if the callback is already memoized. See `React.useCallback` for more info on memoization." + } + ], + "returns": { + "type": "void" + } +} diff --git a/packages/react/src/hooks/useOnOutsideClick.hookDocs.json b/packages/react/src/hooks/useOnOutsideClick.hookDocs.json new file mode 100644 index 00000000000..532c8679c0c --- /dev/null +++ b/packages/react/src/hooks/useOnOutsideClick.hookDocs.json @@ -0,0 +1,40 @@ +{ + "name": "useOnOutsideClick", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "settings", + "type": "UseOnOutsideClickSettings", + "required": true, + "description": "Settings for the useOnOutsideClick hook." + } + ], + "returns": { + "type": "void" + }, + "relatedTypes": [ + { + "name": "UseOnOutsideClickSettings", + "properties": [ + { + "name": "containerRef", + "type": "React.RefObject | React.RefObject", + "required": true, + "description": "A ref to the container element to detect outside clicks." + }, + { + "name": "ignoreClickRefs", + "type": "React.RefObject[]", + "description": "An array of refs to elements that should be ignored when detecting outside clicks." + }, + { + "name": "onClickOutside", + "type": "(e: MouseEvent | TouchEvent) => void", + "required": true, + "description": "Callback function to be called when an outside click is detected." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useOpenAndCloseFocus.hookDocs.json b/packages/react/src/hooks/useOpenAndCloseFocus.hookDocs.json new file mode 100644 index 00000000000..b8a7813d9f3 --- /dev/null +++ b/packages/react/src/hooks/useOpenAndCloseFocus.hookDocs.json @@ -0,0 +1,46 @@ +{ + "name": "useOpenAndCloseFocus", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "openAndCloseFocusSettings", + "type": "UseOpenAndCloseFocusSettings", + "required": true, + "description": "Configuration options for open and close focus behavior." + } + ], + "returns": { + "type": "void" + }, + "relatedTypes": [ + { + "name": "UseOpenAndCloseFocusSettings", + "properties": [ + { + "name": "initialFocusRef", + "type": "React.RefObject", + "description": "A ref to the element that should receive focus when the container is opened. If no ref is passed to `initialFocusRef`, the hook focuses the first focusable element inside of the container." + }, + { + "name": "containerRef", + "type": "React.RefObject", + "required": true, + "description": "A ref to the container element that contains focusable elements." + }, + { + "name": "returnFocusRef", + "type": "React.RefObject", + "required": true, + "description": "A ref to the element that should receive focus when the container is closed." + }, + { + "name": "preventFocusOnOpen", + "type": "boolean", + "defaultValue": "false", + "description": "If true, focus will not be set when the container is opened." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useOverflow.hookDocs.json b/packages/react/src/hooks/useOverflow.hookDocs.json new file mode 100644 index 00000000000..7e03d5404f3 --- /dev/null +++ b/packages/react/src/hooks/useOverflow.hookDocs.json @@ -0,0 +1,17 @@ +{ + "name": "useOverflow", + "importPath": "@primer/react/experimental", + "stories": [], + "parameters": [ + { + "name": "ref", + "type": "React.RefObject", + "required": true, + "description": "A reference to the HTML element to observe for overflow." + } + ], + "returns": { + "type": "boolean", + "description": "A boolean indicating whether the element has overflow." + } +} diff --git a/packages/react/src/hooks/useOverlay.hookDocs.json b/packages/react/src/hooks/useOverlay.hookDocs.json new file mode 100644 index 00000000000..d37d15b62fd --- /dev/null +++ b/packages/react/src/hooks/useOverlay.hookDocs.json @@ -0,0 +1,56 @@ +{ + "name": "useOverlay", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "overlaySettings", + "type": "UseOverlaySettings", + "description": "Configuration options for the overlay behavior." + } + ], + "returns": { + "type": "React.RefObject", + "description": "A ref object attached to the overlay element." + }, + "relatedTypes": [ + { + "name": "UseOverlaySettings", + "properties": [ + { + "name": "ignoreClickRefs", + "type": "React.RefObject[]", + "description": "Refs to click clicks on in the `onOutsideClick` function, useful for ignoring clicks on elements that trigger the overlay visibility." + }, + { + "name": "initialFocusRef", + "type": "React.RefObject", + "description": "Ref to focus when overlay is mounted." + }, + { + "name": "returnFocusRef", + "type": "React.RefObject", + "required": true, + "description": "Ref to focus when overlay is unmounted. Important for accessibility." + }, + { + "name": "onEscape", + "type": "(e: KeyboardEvent) => void", + "required": true, + "description": "Function to call when user presses the Escape key." + }, + { + "name": "onClickOutside", + "type": "(e: TouchOrMouseEvent) => void", + "required": true, + "description": "Function to call when user clicks outside of the overlay." + }, + { + "name": "preventFocusOnOpen", + "type": "boolean", + "description": "Flag to prevent focus on the overlay when it is opened." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useProvidedRefOrCreate.hookDocs.json b/packages/react/src/hooks/useProvidedRefOrCreate.hookDocs.json new file mode 100644 index 00000000000..274bfc59a9a --- /dev/null +++ b/packages/react/src/hooks/useProvidedRefOrCreate.hookDocs.json @@ -0,0 +1,15 @@ +{ + "name": "useProvidedRefOrCreate", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "providedRef", + "type": "React.RefObject", + "description": "The ref to use - if undefined, will use the ref from a call to React.useRef" + } + ], + "returns": { + "type": "React.RefObject" + } +} diff --git a/packages/react/src/hooks/useRefObjectAsForwardedRef.hookDocs.json b/packages/react/src/hooks/useRefObjectAsForwardedRef.hookDocs.json new file mode 100644 index 00000000000..a8161991570 --- /dev/null +++ b/packages/react/src/hooks/useRefObjectAsForwardedRef.hookDocs.json @@ -0,0 +1,22 @@ +{ + "name": "useRefObjectAsForwardedRef", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "forwardedRef", + "type": "ForwardedRef", + "required": true, + "description": "The forwarded ref to synchronize with the ref object." + }, + { + "name": "refObject", + "type": "RefObject", + "required": true, + "description": "The ref object to use as the imperative handle." + } + ], + "returns": { + "type": "void" + } +} diff --git a/packages/react/src/hooks/useResizeObserver.hookDocs.json b/packages/react/src/hooks/useResizeObserver.hookDocs.json new file mode 100644 index 00000000000..30c48bc6328 --- /dev/null +++ b/packages/react/src/hooks/useResizeObserver.hookDocs.json @@ -0,0 +1,40 @@ +{ + "name": "useResizeObserver", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "callback", + "type": "(entries: ResizeObserverEntry[]) => void", + "required": true, + "description": "A callback function that is invoked when the observed element's size changes." + }, + { + "name": "target", + "type": "RefObject", + "description": "A React ref object pointing to the target element to observe. If not provided, the document's root element is observed." + }, + { + "name": "depsArray", + "type": "unknown[]", + "defaultValue": "[]", + "description": "An array of dependencies that will trigger the effect when changed." + } + ], + "returns": { + "type": "void" + }, + "relatedTypes": [ + { + "name": "ResizeObserverEntry", + "properties": [ + { + "name": "contentRect", + "type": "DOMRectReadOnly", + "required": true, + "description": "A read-only rectangle describing the size of the observed element." + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useResponsiveValue.hookDocs.json b/packages/react/src/hooks/useResponsiveValue.hookDocs.json new file mode 100644 index 00000000000..3920b94904a --- /dev/null +++ b/packages/react/src/hooks/useResponsiveValue.hookDocs.json @@ -0,0 +1,45 @@ +{ + "name": "useResponsiveValue", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "value", + "type": "T", + "description": "The responsive value to resolve. It can be a single value or an object with viewport range keys.", + "required": true + }, + { + "name": "fallback", + "type": "F", + "description": "The fallback value to use if the responsive value does not match the current viewport.", + "required": true + } + ], + "returns": { + "type": "(T extends ResponsiveValue ? TRegular | TNarrow | TWide : never) | F", + "description": "The resolved value based on the current viewport width." + }, + "relatedTypes": [ + { + "name": "ResponsiveValue", + "properties": [ + { + "name": "narrow", + "type": "TNarrow", + "description": "Applies when viewport is narrow" + }, + { + "name": "regular", + "type": "TRegular", + "description": "Applies when viewport is regular" + }, + { + "name": "wide", + "type": "TWide", + "description": "Applies when viewport is wide" + } + ] + } + ] +} diff --git a/packages/react/src/hooks/useSafeTimeout.hookDocs.json b/packages/react/src/hooks/useSafeTimeout.hookDocs.json new file mode 100644 index 00000000000..96dd7f65a5c --- /dev/null +++ b/packages/react/src/hooks/useSafeTimeout.hookDocs.json @@ -0,0 +1,42 @@ +{ + "name": "useSafeTimeout", + "importPath": "@primer/react", + "stories": [], + "returns": { + "type": "{safeSetTimeout: SetTimeout; safeClearTimeout: ClearTimeout}" + }, + "relatedTypes": [ + { + "name": "SetTimeout", + "properties": [ + { + "name": "handler", + "type": "TimerHandler", + "required": true, + "description": "The function to be executed after the timeout." + }, + { + "name": "timeout", + "type": "number", + "description": "The time, in milliseconds, the timer should wait before the specified function or code is executed." + }, + { + "name": "args", + "type": "unknown[]", + "description": "Additional arguments which are passed through to the function specified by handler." + } + ] + }, + { + "name": "ClearTimeout", + "properties": [ + { + "name": "id", + "type": "number", + "required": true, + "description": "The identifier of the timeout you want to cancel." + } + ] + } + ] +} diff --git a/packages/react/src/useColorSchemeVar.hookDocs.json b/packages/react/src/useColorSchemeVar.hookDocs.json new file mode 100644 index 00000000000..8523503ae2e --- /dev/null +++ b/packages/react/src/useColorSchemeVar.hookDocs.json @@ -0,0 +1,23 @@ +{ + "name": "useColorSchemeVar", + "importPath": "@primer/react", + "stories": [], + "parameters": [ + { + "name": "values", + "type": "Partial>", + "required": true, + "description": "A mapping of color scheme names and string. For example: `{ light: 'white', dark: 'black' }`." + }, + { + "name": "fallback", + "type": "string", + "required": true, + "description": "A fallback string for when a string isn't defined for the current color scheme." + } + ], + "returns": { + "type": "string", + "description": "The string defined for the current color mode or the fallback string." + } +} diff --git a/packages/react/src/utils/useIsomorphicLayoutEffect.hookDocs.json b/packages/react/src/utils/useIsomorphicLayoutEffect.hookDocs.json new file mode 100644 index 00000000000..923b844e1d5 --- /dev/null +++ b/packages/react/src/utils/useIsomorphicLayoutEffect.hookDocs.json @@ -0,0 +1,9 @@ +{ + "name": "useIsomorphicLayoutEffect", + "importPath": "@primer/react", + "stories": [], + "parameters": [], + "returns": { + "type": "void" + } +} diff --git a/packages/react/src/utils/useTheme.hookDocs.json b/packages/react/src/utils/useTheme.hookDocs.json new file mode 100644 index 00000000000..8ac86ce7ead --- /dev/null +++ b/packages/react/src/utils/useTheme.hookDocs.json @@ -0,0 +1,96 @@ +{ + "name": "useTheme", + "importPath": "@primer/react", + "stories": [], + "parameters": [], + "returns": { + "type": "ThemeData" + }, + "relatedTypes": [ + { + "name": "ThemeProviderProps", + "properties": [ + { + "name": "theme", + "type": "{[key: string]: any}", + "description": "The theme object to be applied." + }, + { + "name": "colorMode", + "type": "'auto' | 'day' | 'night' | 'light' | 'dark'", + "description": "The color mode to be applied." + }, + { + "name": "dayScheme", + "type": "string", + "description": "The color scheme for the day color mode." + }, + { + "name": "nightScheme", + "type": "string", + "description": "The color scheme for the night color mode." + }, + { + "name": "preventSSRMismatch", + "type": "boolean", + "description": "Prevent SSR mismatch by injecting server-side color mode." + } + ] + }, + { + "name": "ThemeData", + "properties": [ + { + "name": "theme", + "type": "Theme", + "description": "The theme object that is applied." + }, + { + "name": "colorScheme", + "type": "string", + "description": "The color scheme (for example: \"light\", \"dark\") that is applied." + }, + { + "name": "colorMode", + "type": "'auto' | 'day' | 'night' | 'light' | 'dark'", + "description": "The color mode (for example: \"day\", \"night\") that is applied. If the color mode is \"auto\", the color mode is determined by the user's system preference." + }, + { + "name": "resolvedColorScheme", + "type": "string", + "description": "The name of the current color scheme." + }, + { + "name": "resolvedColorMode", + "type": "'day' | 'night' | 'light' | 'dark'", + "description": "If the color mode is set to \"auto\", the resolved color mode will be determined by the user's system preference." + }, + { + "name": "dayScheme", + "type": "string", + "description": "The color scheme for the day color mode." + }, + { + "name": "nightScheme", + "type": "string", + "description": "The color scheme for the night color mode." + }, + { + "name": "setColorMode", + "type": "React.Dispatch>", + "description": "A function to set the color mode." + }, + { + "name": "setDayScheme", + "type": "React.Dispatch>", + "description": "A function to set the color scheme for the day color mode." + }, + { + "name": "setNightScheme", + "type": "React.Dispatch>", + "description": "A function to set the color scheme for the night color mode." + } + ] + } + ] +} From b8284ce2b25af3132357455d28907e10a71bbeee Mon Sep 17 00:00:00 2001 From: Cameron Dutro Date: Thu, 16 Jan 2025 14:01:21 -0800 Subject: [PATCH 06/28] Revert "Pagination algorithm enhancements (#5504)" (#5560) This reverts commit 9986d67c832c6f4b8138bebe9114b1932912e1bc. --- .changeset/serious-melons-own.md | 5 - ...Pagehead-Default-dark-colorblind-linux.png | Bin 9126 -> 8941 bytes .../Pagehead-Default-dark-dimmed-linux.png | Bin 9103 -> 8930 bytes ...ehead-Default-dark-high-contrast-linux.png | Bin 9119 -> 8943 bytes .../Pagehead-Default-dark-linux.png | Bin 9126 -> 8941 bytes ...Pagehead-Default-dark-tritanopia-linux.png | Bin 9126 -> 8941 bytes ...agehead-Default-light-colorblind-linux.png | Bin 9046 -> 8862 bytes ...head-Default-light-high-contrast-linux.png | Bin 9084 -> 8906 bytes .../Pagehead-Default-light-linux.png | Bin 9046 -> 8862 bytes ...agehead-Default-light-tritanopia-linux.png | Bin 9046 -> 8862 bytes ...head-Dev-Default-dark-colorblind-linux.png | Bin 9126 -> 8941 bytes ...Pagehead-Dev-Default-dark-dimmed-linux.png | Bin 9103 -> 8930 bytes ...d-Dev-Default-dark-high-contrast-linux.png | Bin 9119 -> 8943 bytes .../Pagehead-Dev-Default-dark-linux.png | Bin 9126 -> 8941 bytes ...head-Dev-Default-dark-tritanopia-linux.png | Bin 9126 -> 8941 bytes ...ead-Dev-Default-light-colorblind-linux.png | Bin 9046 -> 8862 bytes ...-Dev-Default-light-high-contrast-linux.png | Bin 9084 -> 8906 bytes .../Pagehead-Dev-Default-light-linux.png | Bin 9046 -> 8862 bytes ...ead-Dev-Default-light-tritanopia-linux.png | Bin 9046 -> 8862 bytes .../src/Pagination/Pagination.module.css | 12 +- packages/react/src/Pagination/Pagination.tsx | 13 +- packages/react/src/Pagination/model.tsx | 223 +++++++++--------- .../Pagination/PaginationModel.test.tsx | 210 +---------------- 23 files changed, 138 insertions(+), 325 deletions(-) delete mode 100644 .changeset/serious-melons-own.md diff --git a/.changeset/serious-melons-own.md b/.changeset/serious-melons-own.md deleted file mode 100644 index 124bfcd306c..00000000000 --- a/.changeset/serious-melons-own.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/react": patch ---- - -Pagination: Optimize the page rendering algorithm and prevent layout shifts. diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-colorblind-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-dimmed-linux.png index f5ab3fc8b55a8b327656276df682c8a0c7a48513..e218ec5b0cd17ee3a3ccc28bd72ad15f078e0771 100644 GIT binary patch delta 4983 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 delta 5157 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-dark-tritanopia-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-colorblind-linux.png index 277a20c467a2ecb5ba07601ecf587214ee33ad1e..a4fe17ed97bff06660cde73aa660f8c8087ffeb6 100644 GIT binary patch delta 4927 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-high-contrast-linux.png index 2f505621529ef06971dbeae0d2ba69433841d802..86a42dfef3bbe4480212bcb1653e02a5dea96369 100644 GIT binary patch delta 4974 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Default-light-tritanopia-linux.png index 277a20c467a2ecb5ba07601ecf587214ee33ad1e..a4fe17ed97bff06660cde73aa660f8c8087ffeb6 100644 GIT binary patch delta 4927 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-colorblind-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 zcmYjVdsNcd_P5(D?~Ie)eoZ-L%FON8m_zE6uhfLw?Ka+Y((;+2kon3dDZUcnJB>Z2 zOsRa8rZi({sfebCf=H!lhC;p-1bn2Z2#5$M&mZ$!>$leL{I&NwYwdN;K4*VEpS{KB zYP}zN05_hMX42ot1dYd?c7F8_+L6ou_&MV zvY*MH2?y-##N{R?zhrmMMCwe8#^B#oCMJKs)nQt^y`KbZWGi->=8y{^#z=&kokTD_LnH{JnvyT_9Fw|KPxU8TSumyCPaqFeo-3lE@L8Lr@fBQ}lo?2CP= zYjkevbmjO;9fcnr9O)JF;o)(jVTGMnTTjj9k`nyAN(o_hgprXEsbT%D{D&Wwf`ewT z{nk2ltmp+8wZy{khk_1r&-{Xcp z%qQv7{ZrxP5000H?b@{qL02Z(R^|DKmnxFk>QC#x-ovlT-k=KIyuzU!*^<(JON-^F z=(moEt-uMeYt~GXQxc_kR_}+8p z&M_OxafbPF4~ny^b6i4*pC2odp^i;Wl?b7p4z{+!RZ@h!z%v!9U+9mGo|rOo_`n3j zK-Q5vxDF+i6dDv16CKiSef`Y`JU>gc!~up3Il-4MsicBD`R2-~C*^o}+codF#U;zK z!p_xFQwZZoL2`rfnwn=WviFq+aG=>=3?&_R#X-(j1b^Jr5Vu8ilTM|KTye{0H5Gs zrg!0?QaoP3;Z(@N*ieHOXt(UgfuP&f=mT_ZdY`HIuZWJVKhW4r_Jb8RO#z@EhwDb-* zlxD%LK^r#ag#1y?#nvoVkG1_Cq(Y(?cdRX;Ds4vEqNYE9fjCmms;w7a_j~nOiz>|M z%l5t@p6MFRSUg|v;kemSnzII+m{`@&QpI9EG(C)w&(etsO<%N^5evTBBBkY9Fg}yq zie^N;l^Zl=M9$K+=!KdNo%({`wyen&`K_HrX$TWD#SGc zr5Fc?HXU}~PzW=?4i4w-#$z|Rlp8C9S_$E75j{&n1ToKB8*=jb8f)n6Co`I2nnvuz z>SpYMfsU3Ma*J=mG!_qZZQPSKKFtjEu_Gl7pdG8*vHTk19xGE21b`5nji^=TmBp)n zYDkCD%j`w8%|p)GnSuSqeuCF(>+RiUYvIbyyOc&WW9|rxMj^gxx;m1;y`;1wIMA5^ zJ{QOh0Y26#_80;1Q_t${{n^$0i8jJ>;hVie-sJFb$cdHB+u8bTtP0-4rrFw(uIsw& zws}6e62(o{IlzaBo8H_QQ`S;bLTxr=NHJuixYR!n&B7JE%-yKP*08zJgX2i;mHSL{ zj_8)OvBEt~Vh_TsgbIb0rQMohN^*a(+S|p&#k08J~IDF%&1nR*}iAeVR=y|*S`z=#m399iz@sD|1 z>qiSLf$b6Bcvgi=wq6U;eYU0NDmY)D96LWVvoBP%rS;sY`Vnju(xeqKGA;L8)|DJ; zkJ;pwSB5HR$Sh+ybW5Q+5NVCfzJ$iB7dS`RgLK96Q40izrhW3e?aae~M9$?-Er1j7 z7C!jO3)C-4c7tS#?PYiBZEYKKmfB05zIRQj*E6%tFYC(D{42>xx;yvp;ggdRzDd(# zcpCRTySifMZTJ;U7{1HAR>KWHbYLdUM_!4&;c08@w)ojt2Q$A)-lL0b@_GrCq^AL2IffiNXh)jeV*^uR zdpNK|lillAM*BXhR}GOF1|b+w6u~KCkp}G(!V=rIaCETlryO4 zk3AN^Vm%~yTDO~!2R`Qq2k4WpO5ZCqlOAKsfbB&%4V5kb!aJQQt# zbzX|GcjcCVPJhqV&uCl2UFy<$8XDsGo&9^umoismRMBqiI*RNYALMl-dh|}LOF?b0 zm;3K*J^tA8iEjyQ>3zL-Tu3E_o%Jxm9LC}_dZ4GALP=h^mau#+VeLQS6qsv9n=4&5 zyTmCqlbj+D2~oYbAk7t+2nN=aj5Hg%Q@90I2>s}Y zU1*lgAfYKSOBj4E-~1&^e-$<=Q1Vk>g$;MKyw?1(p+JG)Q0Xw%w2B_{G1&c8P4@OM zaZjZi{d6WbmZktbsw_uPw6|IInd2yKi8}U974$k2hjq?a{^W?rS}`W%`rwljd-gm9+!@cm1;iZk0%Pla zQBhGz00zVJDwbNir+;1prdtKQbjs*$ynd`ipwH4#v)6Gd#t6Z;yn@3SffEqARTq1E zVm}Db4neohz|XwJ6lZUq3Lp2^U0129oR`-fgY|l{VB0gmZ}_>c++T+kmT_X8Q0eLS z)wro3+DY5YabI$9^iG zKWhQa6VO$DfO2}UXqiiq#)iVvR*Xc$k5GM|+Fir)RFSRK@$71P%)p2p4w61Kch?|k z=|2f+XzEVY|GEptgb+5hjlw`504;6xSI&30wPkF+H5H`I-3|)}CjZnM81DzmU8jsn z;%&a_8}!>LYn;Xi(jTES&YK;`6q@4&cob!(OZ(RQ0Vr?kJ(quq(IK6HIyXfIg>Fw) zOVw}Y1$k+j`0R{~Hp!9;9J+M#1Bh9l#fqc~5*~MrO5V2n1-?eQiwQ@Ty z(*C!|Dk-U+8{wWbP{QC2)zCX3gt4~NG+q7uk&P1fGkRvlqI4oh+)JZjPIKEXcE4{9IOI-PZr8T!NbDwd_V;_l6xXcP_pF zf<9;NsVmQ0yh#N#@o^%PB0IvnckfPkgS-HK*HPcHWZvs5Z?z>OaJ0Bo)?t*?(3w_m z9G<7lMrwZ6$np3bt;`=-4SZUqz_mk2H+Sxii`T-3n=RoEE7WXWDxTabm1cjMMgulFve6b$3B=Cd>BQLa2ltZn05gP` z37|t?2%CF+Kk^Z+Thp&=812Ta=~sklg3D339Y-9tGT~UtHUlxm>bIivndcYNKR8}p>|vBQkt@wT9?(ztVvp4ZVb+REhaCT^wy+dh4rT{5p2+tXzi>m4~E zebWlK4g$`ZUHU0IVqxV33wveuE@ZMpKW^V}VDp>w>xN-rW1g~oY%;oW**1UeUG(054_4=ph zB>|+7YWpF3Q&9SUd=g~yp%YDEn(rk#U?Sp1#PDi`@>~PQ9IHygv|bAqsi_q0<2ftQ z@^Xiw3=hY?UldJ{H1a?|GRY9cmLv2d?`}KQ#_QMD$z(Fu#uMu3=tyYG7#J~v)B|>6 zQj)J7Msw#2FP~f%9*X?%@Vj!vjYTuZL2P1ph+hC&Krilx=gb-DxmyMBDsvS-=s4s_ zKi$IEF0%tM(GwwPsZR1SwlpmKw3{PxYJG1~2$9pQM>lrf(O6X}|2co{t9~ zJgI&UvYy}vA+pBCQ-~M9)%pZ)7;3!O&DbgCj{5q$rZgrdG}<4Nz#_6PqK57pI~GG? zNa`8YMhk-_3Wzwd(q`Xa8MkWp1~51FM$ydG`}b)8YX&vwvgwY^V-Aea#SBr`ZhW z*RrE=eCN477H{4uNxnoKHOek3fXtH@-75|c57!GHd6Q@ka-?^1LtC3l+d1uF7m(`r zgWV6)mz%p$zG;`vrwk?8#yR}pkeWO*tSb4^%#5PejzA_S{KsYKpge7E{~^!q9UJxWs2ZTjrwd>1<8v~F}2 ziZLMeBqFC@&$B6G!Hkz{QJT*sB}(p}6R5&XNIX1bQn1d%v{E4^YtG8f;=MZ#0JGvI zdKAwyBh6%Lpw~ExnxuYL;N8nyoi}MNzK1sM$`%JfmVofMxryh~Kj%^54YjVJ(Bi_< zN^o6!$c3T4k0#B&zoBQXpX;~3uqGaaOeUjI7+s^tiT1t8S~%;XSy%Me=3Y(BYrl0t zq(k6U8n2*joRk1lT}3U9{nru!7qdCM<4u#TWQWPOf1@p$v_ASe((EhY#11nPlbu25 n|9vK?wdKHtotC|Z9XE$>0no#=e;P-3Cg;!j{k!R3SAP8;HWi_- diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-dimmed-linux.png index f5ab3fc8b55a8b327656276df682c8a0c7a48513..e218ec5b0cd17ee3a3ccc28bd72ad15f078e0771 100644 GIT binary patch delta 4983 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 delta 5157 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-dark-tritanopia-linux.png index 9f2e9f306825e25c1bc214ad0d1f4a485a9535ab..7b494e5c706d7c4006920874ab43a33024ad3a40 100644 GIT binary patch delta 5006 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 delta 5184 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-colorblind-linux.png index 277a20c467a2ecb5ba07601ecf587214ee33ad1e..a4fe17ed97bff06660cde73aa660f8c8087ffeb6 100644 GIT binary patch delta 4927 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-high-contrast-linux.png index 2f505621529ef06971dbeae0d2ba69433841d802..86a42dfef3bbe4480212bcb1653e02a5dea96369 100644 GIT binary patch delta 4974 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 diff --git a/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/Pagination.test.ts-snapshots/Pagehead-Dev-Default-light-tritanopia-linux.png index 277a20c467a2ecb5ba07601ecf587214ee33ad1e..a4fe17ed97bff06660cde73aa660f8c8087ffeb6 100644 GIT binary patch delta 4927 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 diff --git a/packages/react/src/Pagination/Pagination.module.css b/packages/react/src/Pagination/Pagination.module.css index 8f5857fc50b..1f16c3281df 100644 --- a/packages/react/src/Pagination/Pagination.module.css +++ b/packages/react/src/Pagination/Pagination.module.css @@ -103,8 +103,16 @@ box-shadow: inset 0 0 0 3px var(--fgColor-onEmphasis); } -.Page[aria-hidden], -.Page[aria-hidden]:hover, +.Page[aria-disabled]:first-child, +.Page[aria-disabled]:hover:first-child { + /* stylelint-disable-next-line primer/spacing */ + margin: 0 2px; + /* stylelint-disable-next-line primer/spacing */ + margin-right: 6px; +} + +.Page[aria-disabled], +.Page[aria-disabled]:hover, .Page[role='presentation'], .Page[role='presentation']:hover { color: var(--fgColor-disabled); diff --git a/packages/react/src/Pagination/Pagination.tsx b/packages/react/src/Pagination/Pagination.tsx index aafea554592..f28d9f05310 100644 --- a/packages/react/src/Pagination/Pagination.tsx +++ b/packages/react/src/Pagination/Pagination.tsx @@ -91,8 +91,17 @@ const Page = toggleStyledComponent( box-shadow: inset 0 0 0 3px ${get('colors.fg.onEmphasis')}; } - &[aria-hidden], - &[aria-hidden]:hover, + &[aria-disabled], + &[aria-disabled]:hover { + margin: 0 2px; + + &:first-child { + margin-right: 6px; + } + } + + &[aria-disabled], + &[aria-disabled]:hover, &[role='presentation'], &[role='presentation']:hover { color: ${get('colors.primer.fg.disabled')}; // check diff --git a/packages/react/src/Pagination/model.tsx b/packages/react/src/Pagination/model.tsx index ee9a094562f..2883f802444 100644 --- a/packages/react/src/Pagination/model.tsx +++ b/packages/react/src/Pagination/model.tsx @@ -5,126 +5,125 @@ export function buildPaginationModel( marginPageCount: number, surroundingPageCount: number, ) { - const prev: PageType = {type: 'PREV', num: currentPage - 1, disabled: currentPage === 1} - const next: PageType = {type: 'NEXT', num: currentPage + 1, disabled: currentPage === pageCount} - if (!showPages) { - return [prev, next] - } - - if (pageCount <= 0) { - return [prev, {...next, disabled: true}] - } - - const pages: PageType[] = [] - - // number of pages shown on each side of the current page - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // standardGap: 3 - const standardGap = surroundingPageCount + marginPageCount + const pages = [] - // the maximum number of pages that can be shown at a given time - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // maxVisiblePages: 7 - const maxVisiblePages = standardGap + standardGap + 1 - - // if the number of pages is less than the maximum number of pages that can be shown just return all of them - if (pageCount <= maxVisiblePages) { - addPages(1, pageCount, false) - return [prev, ...pages, next] - } - - // startGap is the number of pages hidden by the start ellipsis - // startOffset is the number of pages to offset at the start to compensate - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // startGap: 5 - // startOffset: 0 - // when the margin and the surrounding windows overlap. - // [1, _2_, 3, 4, 5, 6, ..., 15] - // startGap = 0 - // startOffset: -3 <-- - let startGap = 0 - let startOffset = 0 - - // When there is overlap - if (currentPage - standardGap - 1 <= 1) { - startOffset = currentPage - standardGap - 2 - } else { - startGap = currentPage - standardGap - 1 - } - - // These are equivalent to startGap and startOffset but at the end of the list - let endGap = 0 - let endOffset = 0 - - // When there is overlap - if (pageCount - currentPage - standardGap <= 1) { - endOffset = pageCount - currentPage - standardGap - 1 - } else { - endGap = pageCount - currentPage - standardGap - } - - const hasStartEllipsis = startGap > 0 - const hasEndEllipsis = endGap > 0 - - // add pages "before" the start ellipsis (if any) - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // marginPageCount: 1 - // addPages(1, 1, true) - addPages(1, marginPageCount, hasStartEllipsis) - - if (hasStartEllipsis) { - addEllipsis(marginPageCount) - } - - // add middle pages - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // marginPageCount: 1 - // surroundingPageCount: 2 - // startGap: 5 - // startOffset: 0 - // endGap: 3 - // endOffset: 0 - // addPages(7, 11, true) - addPages( - marginPageCount + startGap + endOffset + 1, - pageCount - startOffset - endGap - marginPageCount, - hasEndEllipsis, - ) + if (showPages) { + const pageNums: Array = [] + const addPage = (n: number) => { + if (n >= 1 && n <= pageCount) { + pageNums.push(n) + } + } - if (hasEndEllipsis) { - addEllipsis(pageCount - startOffset - endGap - marginPageCount) - } + // Start by defining the window of pages to show around the current page. + // If the window goes off either edge, shift it until it fits. + let extentLeft = currentPage - surroundingPageCount + let extentRight = currentPage + surroundingPageCount + if (extentLeft < 1 && extentRight > pageCount) { + // Our window is larger than the entire range, + // so simply display every page. + extentLeft = 1 + extentRight = pageCount + } else if (extentLeft < 1) { + while (extentLeft < 1) { + extentLeft++ + extentRight++ + } + } else if (extentRight > pageCount) { + while (extentRight > pageCount) { + extentLeft-- + extentRight-- + } + } - // add pages "after" the start ellipsis (if any) - // [1, ..., 7, 8, _9_, 10, 11, ..., 15] - // marginPageCount: 1 - // surroundingPageCount: 2 - // startGap: 5 - // startOffset: 0 - // endGap: 3 - // endOffset: 0 - // addPages(15, 15) - addPages(pageCount - marginPageCount + 1, pageCount) + // Next, include the pages in the margins. + // If a margin page is already covered in the window, + // extend the window to the other direction. + for (let i = 1; i <= marginPageCount; i++) { + const leftPage = i + const rightPage = pageCount - (i - 1) + if (leftPage >= extentLeft) { + extentRight++ + } else { + addPage(leftPage) + } + if (rightPage <= extentRight) { + extentLeft-- + } else { + addPage(rightPage) + } + } - return [prev, ...pages, next] + for (let i = extentLeft; i <= extentRight; i++) { + addPage(i) + } - function addEllipsis(previousPage: number): void { - pages.push({ - type: 'BREAK', - num: previousPage + 1, - }) - } + const sorted = pageNums + .slice() + .sort((a, b) => a - b) + .filter((item, idx, ary) => !idx || item !== ary[idx - 1]) + for (let idx = 0; idx < sorted.length; idx++) { + const num = sorted[idx] + const selected = num === currentPage + const last = sorted[idx - 1] + const next = sorted[idx + 1] + const lastDelta = num - last + const nextDelta = num - next + const precedesBreak = nextDelta !== -1 + + if (idx === 0) { + if (num !== 1) { + // If the first page isn't page one, + // we need to add a break + pages.push({ + type: 'BREAK', + num: 1, + }) + } + pages.push({ + type: 'NUM', + num, + selected, + precedesBreak, + }) + } else { + if (lastDelta === 1) { + pages.push({ + type: 'NUM', + num, + selected, + precedesBreak, + }) + } else { + // We skipped some, so add a break + pages.push({ + type: 'BREAK', + num: num - 1, + }) + pages.push({ + type: 'NUM', + num, + selected, + precedesBreak: false, + }) + } + } + } - function addPages(start: number, end: number, precedesBreak: boolean = false): void { - for (let i = start; i <= end; i++) { + const lastPage = pages[pages.length - 1] + if (lastPage.type === 'NUM' && lastPage.num !== pageCount) { + // The last page we rendered wasn't the actual last page, + // so we need an additional break pages.push({ - type: 'NUM', - num: i, - selected: i === currentPage, - precedesBreak: i === end && precedesBreak, + type: 'BREAK', + num: pageCount, }) } } + + const prev = {type: 'PREV', num: currentPage - 1, disabled: currentPage === 1} + const next = {type: 'NEXT', num: currentPage + 1, disabled: currentPage === pageCount} + return [prev, ...pages, next] } type PageType = { @@ -149,7 +148,7 @@ export function buildComponentData( key = 'page-prev' content = 'Previous' if (page.disabled) { - Object.assign(props, {rel: 'prev', 'aria-hidden': 'true'}) + Object.assign(props, {'aria-hidden': 'true'}) } else { Object.assign(props, { rel: 'prev', @@ -164,7 +163,7 @@ export function buildComponentData( key = 'page-next' content = 'Next' if (page.disabled) { - Object.assign(props, {rel: 'next', 'aria-hidden': 'true'}) + Object.assign(props, {'aria-hidden': 'true'}) } else { Object.assign(props, { rel: 'next', diff --git a/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx b/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx index a7ca5a88c1e..3a3ba2e6273 100644 --- a/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx +++ b/packages/react/src/__tests__/Pagination/PaginationModel.test.tsx @@ -14,170 +14,6 @@ function last(array: Array, count = 1) { } describe('Pagination model', () => { - it('correctly handles negative pages', () => { - const model = buildPaginationModel(-10, 1, true, 1, 2) - expect(first(model).type).toEqual('PREV') - expect(first(model).disabled).toBe(true) - expect(last(model).type).toEqual('NEXT') - expect(last(model).disabled).toBe(true) - expect(model.length).toBe(2) - }) - - it('correctly handles zero pages', () => { - const model = buildPaginationModel(0, 1, true, 1, 2) - expect(first(model).type).toEqual('PREV') - expect(first(model).disabled).toBe(true) - expect(last(model).type).toEqual('NEXT') - expect(last(model).disabled).toBe(true) - expect(model.length).toBe(2) - }) - - it('correctly handles 1 page', () => { - const model = buildPaginationModel(1, 1, true, 1, 2) - expect(first(model).type).toEqual('PREV') - expect(first(model).disabled).toBe(true) - expect(last(model).type).toEqual('NEXT') - expect(last(model).disabled).toBe(true) - expect(model.length).toBe(3) - }) - - it('correctly handles zero margin pages', () => { - const model = buildPaginationModel(6, 2, true, 0, 2) - - const expected = [ - { - type: 'PREV', - num: 1, - disabled: false, - }, - { - type: 'NUM', - num: 1, - selected: false, - precedesBreak: false, - }, - { - type: 'NUM', - num: 2, - selected: true, - precedesBreak: false, - }, - { - type: 'NUM', - num: 3, - selected: false, - precedesBreak: false, - }, - { - type: 'NUM', - num: 4, - selected: false, - precedesBreak: false, - }, - { - type: 'NUM', - num: 5, - selected: false, - precedesBreak: false, - }, - { - type: 'NUM', - num: 6, - selected: false, - precedesBreak: true, - }, - { - type: 'BREAK', - num: 7, - }, - { - type: 'NEXT', - num: 3, - disabled: false, - }, - ] - - expect(model).toMatchObject(expected) - }) - - it('correctly handles zero surrounding pages', () => { - const model = buildPaginationModel(7, 4, true, 1, 0) - - const expected = [ - { - type: 'PREV', - num: 3, - disabled: false, - }, - { - type: 'NUM', - num: 1, - selected: false, - precedesBreak: true, - }, - { - type: 'BREAK', - num: 2, - }, - { - type: 'NUM', - num: 4, - selected: true, - precedesBreak: true, - }, - { - type: 'BREAK', - num: 5, - }, - { - type: 'NUM', - num: 7, - selected: false, - precedesBreak: false, - }, - { - type: 'NEXT', - num: 5, - disabled: false, - }, - ] - - expect(model).toMatchObject(expected) - }) - - it('correctly handles zero margin and surrounding pages', () => { - const model = buildPaginationModel(50, 3, true, 0, 0) - - const expected = [ - { - type: 'PREV', - num: 2, - disabled: false, - }, - { - type: 'BREAK', - num: 1, - }, - { - type: 'NUM', - num: 3, - selected: true, - precedesBreak: true, - }, - { - type: 'BREAK', - num: 4, - }, - { - type: 'NEXT', - num: 4, - disabled: false, - }, - ] - - expect(model).toMatchObject(expected) - }) - it('sets disabled on prev links', () => { const model1 = buildPaginationModel(10, 1, true, 1, 2) expect(first(model1).type).toEqual('PREV') @@ -258,60 +94,26 @@ describe('Pagination model', () => { {type: 'NUM', num: 2, selected: true}, {type: 'NUM', num: 3}, // normally with a surround of 1, only 1 and 3 would be shown - // however, since we don't overlap, the window is extended to 5 - {type: 'NUM', num: 4}, - {type: 'NUM', num: 5, precedesBreak: true}, + // however, since 1 was already shown, we extend to 4 + {type: 'NUM', num: 4, precedesBreak: true}, {type: 'BREAK'}, ] - expect(first(model, 7)).toMatchObject(expected) + expect(first(model, 6)).toMatchObject(expected) }) it('adds items to the left if it hits bounds to the right', () => { const model = buildPaginationModel(15, 14, true, 1, 1) const expected = [ // normally with a surround of 1, only 13 and 15 would be shown - // however, since we don't overlap, the window is extended to 11 + // however, since 15 was already shown, we extend to 12 {type: 'BREAK'}, - {type: 'NUM', num: 11}, {type: 'NUM', num: 12}, {type: 'NUM', num: 13}, {type: 'NUM', num: 14, selected: true}, {type: 'NUM', num: 15}, {type: 'NEXT', num: 15}, ] - expect(last(model, 7)).toMatchObject(expected) - }) - - it('adds a page when there would be only one page hidden by the left ellipsis', () => { - const model = buildPaginationModel(15, 5, true, 1, 2) - const expected = [ - {type: 'PREV', num: 4}, - {type: 'NUM', num: 1}, - {type: 'NUM', num: 2}, - {type: 'NUM', num: 3}, - {type: 'NUM', num: 4}, - {type: 'NUM', num: 5, selected: true}, - {type: 'NUM', num: 6}, - {type: 'NUM', num: 7, precedesBreak: true}, - {type: 'BREAK'}, - ] - expect(first(model, 9)).toMatchObject(expected) - }) - - it('adds a page when there would be only one page hidden by the right ellipsis', () => { - const model = buildPaginationModel(15, 11, true, 1, 2) - const expected = [ - {type: 'BREAK'}, - {type: 'NUM', num: 9}, - {type: 'NUM', num: 10}, - {type: 'NUM', num: 11, selected: true}, - {type: 'NUM', num: 12}, - {type: 'NUM', num: 13}, - {type: 'NUM', num: 14}, - {type: 'NUM', num: 15}, - {type: 'NEXT', num: 12}, - ] - expect(last(model, 9)).toMatchObject(expected) + expect(last(model, 6)).toMatchObject(expected) }) it('correctly creates breaks next to the next/prev links when margin is 0', () => { @@ -322,7 +124,7 @@ describe('Pagination model', () => { {type: 'NUM', num: 4}, {type: 'NUM', num: 5, selected: true}, {type: 'NUM', num: 6, precedesBreak: true}, - {type: 'BREAK', num: 7}, + {type: 'BREAK', num: 10}, {type: 'NEXT'}, ] expect(model).toMatchObject(expected) From c0360db263e046f7d756bb157fb520167353be91 Mon Sep 17 00:00:00 2001 From: Cameron Dutro Date: Thu, 16 Jan 2025 15:13:20 -0800 Subject: [PATCH 07/28] Avoid `TypeError` in useAnnouncements (#5551) * Avoid accessing properties of undefined in useAnnouncements * Add changeset --- .changeset/giant-bees-impress.md | 5 +++++ packages/react/src/FilteredActionList/useAnnouncements.tsx | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .changeset/giant-bees-impress.md diff --git a/.changeset/giant-bees-impress.md b/.changeset/giant-bees-impress.md new file mode 100644 index 00000000000..0b9d17e7e92 --- /dev/null +++ b/.changeset/giant-bees-impress.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Fix an issue in useAnnouncements.tsx causing a TypeError in production. The activeItem variable may be null. diff --git a/packages/react/src/FilteredActionList/useAnnouncements.tsx b/packages/react/src/FilteredActionList/useAnnouncements.tsx index aa48a8a2b45..43e11c08400 100644 --- a/packages/react/src/FilteredActionList/useAnnouncements.tsx +++ b/packages/react/src/FilteredActionList/useAnnouncements.tsx @@ -4,6 +4,7 @@ import {announce} from '@primer/live-region-element' import {useEffect, useRef} from 'react' import type {FilteredActionListProps} from './FilteredActionListEntry' +import type {ItemInput} from '../deprecated/ActionList/List' // we add a delay so that it does not interrupt default screen reader announcement and queues after it const delayMs = 500 @@ -28,10 +29,10 @@ const getItemWithActiveDescendant = ( const optionElements = listElement.querySelectorAll('[role="option"]') const index = Array.from(optionElements).indexOf(activeItemElement) - const activeItem = items[index] + const activeItem = items[index] as ItemInput | undefined - const text = activeItem.text - const selected = activeItem.selected + const text = activeItem?.text + const selected = activeItem?.selected return {index, text, selected} } From c87e80c129fd293610bdc7df902c0df2b08f3220 Mon Sep 17 00:00:00 2001 From: Cameron Dutro Date: Thu, 16 Jan 2025 15:13:26 -0800 Subject: [PATCH 08/28] Avoid TypeError in `PageLayout` checking document.body (#5552) * Avoid TypeError in PageLayout checking document.body * Make eslint happy --- .changeset/lazy-jars-leave.md | 5 +++++ packages/react/src/PageLayout/PageLayout.tsx | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 .changeset/lazy-jars-leave.md diff --git a/.changeset/lazy-jars-leave.md b/.changeset/lazy-jars-leave.md new file mode 100644 index 00000000000..22849369cf2 --- /dev/null +++ b/.changeset/lazy-jars-leave.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Avoid accessing properties of potentially null document.body in PageLayout diff --git a/packages/react/src/PageLayout/PageLayout.tsx b/packages/react/src/PageLayout/PageLayout.tsx index ee166fb5bce..f1240338f66 100644 --- a/packages/react/src/PageLayout/PageLayout.tsx +++ b/packages/react/src/PageLayout/PageLayout.tsx @@ -364,13 +364,15 @@ const VerticalDivider: React.FC { @@ -378,7 +380,8 @@ const VerticalDivider: React.FC Date: Fri, 17 Jan 2025 11:27:50 -0500 Subject: [PATCH 09/28] docs: update dynamic button examples to use AriaAlert (#5548) * docs: update example to use AriaAlert * docs: make announcement examples more discoverable * Revert "docs: make announcement examples more discoverable" This reverts commit 996f1abb7cba036b5f2c496806538c81c0933313. * Don't explicitly specify stories so that all stories get pulled in * Set to empty array * Just individually specify --- packages/react/src/Banner/Banner.docs.json | 3 +++ packages/react/src/Banner/Banner.examples.stories.tsx | 2 +- packages/react/src/Button/Button.examples.stories.tsx | 8 ++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/react/src/Banner/Banner.docs.json b/packages/react/src/Banner/Banner.docs.json index 9a22b629a39..b6a33c127e5 100644 --- a/packages/react/src/Banner/Banner.docs.json +++ b/packages/react/src/Banner/Banner.docs.json @@ -46,6 +46,9 @@ }, { "id": "experimental-components-banner-features--custom-icon" + }, + { + "id": "experimental-components-banner-examples--with-announcement" } ], "props": [ diff --git a/packages/react/src/Banner/Banner.examples.stories.tsx b/packages/react/src/Banner/Banner.examples.stories.tsx index cb65d92e850..bf590d032e0 100644 --- a/packages/react/src/Banner/Banner.examples.stories.tsx +++ b/packages/react/src/Banner/Banner.examples.stories.tsx @@ -46,7 +46,7 @@ export const WithUserAction = () => { ) } -export const WithDynamicContent = () => { +export const WithAnnouncement = () => { type Choice = 'one' | 'two' | 'three' const messages: Map = new Map([ ['one', 'This is a message for choice one'], diff --git a/packages/react/src/Button/Button.examples.stories.tsx b/packages/react/src/Button/Button.examples.stories.tsx index 3ea20fc9be2..6c6d0558843 100644 --- a/packages/react/src/Button/Button.examples.stories.tsx +++ b/packages/react/src/Button/Button.examples.stories.tsx @@ -3,7 +3,7 @@ import type {Meta} from '@storybook/react' import {Button} from '.' import {DownloadIcon} from '@primer/octicons-react' import {Banner} from '../experimental' -import {AriaStatus} from '../live-region' +import {AriaStatus, AriaAlert} from '../live-region' const meta: Meta = { title: 'Components/Button/Examples', @@ -69,7 +69,11 @@ export const LoadingStatusAnnouncementError = () => { return ( <> - {!loading && error ? : null} + {!loading && error ? ( + + + + ) : null} - ) } From 42c20ddc6b850d548e263f6d76bdda1895a97bfe Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:00:48 -0500 Subject: [PATCH 18/28] bug: ensure Announce components work without pre-existing text node (#5568) * bug: ensure mutation observer is triggered when content is added to Announce without pre-existing text. * Comment change out and add tests * Set childList: true * Remove unused * Create afraid-pianos-invent.md --- .changeset/afraid-pianos-invent.md | 5 ++++ packages/react/src/live-region/Announce.tsx | 1 + .../live-region/__tests__/AriaAlert.test.tsx | 29 +++++++++++++++++++ .../live-region/__tests__/AriaStatus.test.tsx | 28 ++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 .changeset/afraid-pianos-invent.md diff --git a/.changeset/afraid-pianos-invent.md b/.changeset/afraid-pianos-invent.md new file mode 100644 index 00000000000..2cf429047ec --- /dev/null +++ b/.changeset/afraid-pianos-invent.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +bug: ensure Announce components work without pre-existing text node diff --git a/packages/react/src/live-region/Announce.tsx b/packages/react/src/live-region/Announce.tsx index 307a79c47b2..a9e207c83d1 100644 --- a/packages/react/src/live-region/Announce.tsx +++ b/packages/react/src/live-region/Announce.tsx @@ -108,6 +108,7 @@ export function Announce({ observer.observe(container, { subtree: true, characterData: true, + childList: true, }) return () => { diff --git a/packages/react/src/live-region/__tests__/AriaAlert.test.tsx b/packages/react/src/live-region/__tests__/AriaAlert.test.tsx index 91c4d83731e..052eb16552a 100644 --- a/packages/react/src/live-region/__tests__/AriaAlert.test.tsx +++ b/packages/react/src/live-region/__tests__/AriaAlert.test.tsx @@ -1,6 +1,7 @@ import {render, screen} from '@testing-library/react' import React from 'react' import {AriaAlert} from '../AriaAlert' +import {userEvent} from '@testing-library/user-event' import {getLiveRegion} from '../../utils/testing' describe('AriaAlert', () => { @@ -46,4 +47,32 @@ describe('AriaAlert', () => { ) expect(screen.getByTestId('container').tagName).toBe('SPAN') }) + + it('should update live-region element when AriaAlert goes from empty to populated', async () => { + function TestComponent() { + const [show, setShow] = React.useState(false) + return ( + <> + {show ? 'Failed to export data!' : null} + + + ) + } + const user = userEvent.setup() + + render() + + const liveRegion = getLiveRegion() + expect(liveRegion.getMessage('assertive')).toBe('') + + await user.click(screen.getByText('Export data')) + expect(liveRegion.getMessage('assertive')).toBe('Failed to export data!') + }) }) diff --git a/packages/react/src/live-region/__tests__/AriaStatus.test.tsx b/packages/react/src/live-region/__tests__/AriaStatus.test.tsx index 16465c03a5c..294abf70ee7 100644 --- a/packages/react/src/live-region/__tests__/AriaStatus.test.tsx +++ b/packages/react/src/live-region/__tests__/AriaStatus.test.tsx @@ -83,4 +83,32 @@ describe('AriaStatus', () => { ) expect(screen.getByTestId('container').tagName).toBe('SPAN') }) + + it('should update live-region element when AriaStatus goes from empty to populated', async () => { + function TestComponent() { + const [show, setShow] = React.useState(false) + return ( + <> + {show ? 'Export completed' : null} + + + ) + } + const user = userEvent.setup() + + render() + + const liveRegion = getLiveRegion() + expect(liveRegion.getMessage('polite')).toBe('') + + await user.click(screen.getByText('Export data')) + expect(liveRegion.getMessage('polite')).toBe('Export completed') + }) }) From f8888f4f30302b3d3ed6facebb1fe92e6229a59f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:32:44 +0000 Subject: [PATCH 19/28] chore(deps-dev): bump the storybook group with 12 updates (#5570) Bumps the storybook group with 12 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.4.7` | `8.5.0` | | [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.4.7` | `8.5.0` | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.4.7` | `8.5.0` | | [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.4.7` | `8.5.0` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.4.7` | `8.5.0` | | [@storybook/addon-storysource](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/storysource) | `8.4.7` | `8.5.0` | | [@storybook/preview-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/preview-api) | `8.4.7` | `8.5.0` | | [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.4.7` | `8.5.0` | | [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.4.7` | `8.5.0` | | [@storybook/source-loader](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/source-loader) | `8.4.7` | `8.5.0` | | [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.4.7` | `8.5.0` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.4.7` | `8.5.0` | Updates `@storybook/addon-a11y` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/a11y) Updates `@storybook/addon-actions` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/actions) Updates `@storybook/addon-essentials` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/essentials) Updates `@storybook/addon-interactions` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/interactions) Updates `@storybook/addon-links` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/links) Updates `@storybook/addon-storysource` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/addons/storysource) Updates `@storybook/preview-api` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/lib/preview-api) Updates `@storybook/react` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/renderers/react) Updates `@storybook/react-vite` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/frameworks/react-vite) Updates `@storybook/source-loader` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/lib/source-loader) Updates `@storybook/theming` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/lib/theming) Updates `storybook` from 8.4.7 to 8.5.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.5.0/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-a11y" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/addon-actions" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/addon-interactions" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/addon-storysource" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/preview-api" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/react" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/react-vite" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/source-loader" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: "@storybook/theming" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-minor dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh Black --- package-lock.json | 489 +++++++++++++++++++++++------------- packages/react/package.json | 20 +- 2 files changed, 325 insertions(+), 184 deletions(-) diff --git a/package-lock.json b/package-lock.json index b70b75d2fd9..8f51537e559 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6854,27 +6854,29 @@ } }, "node_modules/@storybook/addon-a11y": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.4.7.tgz", - "integrity": "sha512-GpUvXp6n25U1ZSv+hmDC+05BEqxWdlWjQTb/GaboRXZQeMBlze6zckpVb66spjmmtQAIISo0eZxX1+mGcVR7lA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.5.0.tgz", + "integrity": "sha512-dTKlnhOaDsAXxkmHz7m6/qb98IENoaXTCG3fXo2iwJ1xT27fZF+i8fz8oQprLAN5r7xlnz66ARJvEIKJ+Lxjgw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-highlight": "8.4.7", - "axe-core": "^4.2.0" + "@storybook/addon-highlight": "8.5.0", + "@storybook/test": "8.5.0", + "axe-core": "^4.2.0", + "vitest-axe": "^0.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-actions": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.4.7.tgz", - "integrity": "sha512-mjtD5JxcPuW74T6h7nqMxWTvDneFtokg88p6kQ5OnC1M259iAXb//yiSZgu/quunMHPCXSiqn4FNOSgASTSbsA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.5.0.tgz", + "integrity": "sha512-6CW9+17rk5eNx6I8EKqCxRKtsJFTR/lHL+xiJ6/iBWApIm8sg63vhXvUTJ58UixmIkT5oLh0+ESNPh+x10D8fw==", "dev": true, "license": "MIT", "dependencies": { @@ -6889,7 +6891,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-actions/node_modules/uuid": { @@ -6905,9 +6907,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.4.7.tgz", - "integrity": "sha512-I4/aErqtFiazcoWyKafOAm3bLpxTj6eQuH/woSbk1Yx+EzN+Dbrgx1Updy8//bsNtKkcrXETITreqHC+a57DHQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.5.0.tgz", + "integrity": "sha512-lzyFLs7niNsqlhH5kdUrp7htLiMIcjY50VLWe0PaeJ6T6GZ7X9qhQzROAUV6cGqzyd8A6y/LzIUntDPMVEm/6g==", "dev": true, "license": "MIT", "dependencies": { @@ -6920,13 +6922,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-controls": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.4.7.tgz", - "integrity": "sha512-377uo5IsJgXLnQLJixa47+11V+7Wn9KcDEw+96aGCBCfLbWNH8S08tJHHnSu+jXg9zoqCAC23MetntVp6LetHA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.5.0.tgz", + "integrity": "sha512-1fivx77A/ahObrPl0L66o9i9MUNfqXxsrpekne5gjMNXw9XJFIRNUe/ddL4CMmwu7SgVbj2QV+q5E5mlnZNTJw==", "dev": true, "license": "MIT", "dependencies": { @@ -6939,20 +6941,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-docs": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.4.7.tgz", - "integrity": "sha512-NwWaiTDT5puCBSUOVuf6ME7Zsbwz7Y79WF5tMZBx/sLQ60vpmJVQsap6NSjvK1Ravhc21EsIXqemAcBjAWu80w==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.5.0.tgz", + "integrity": "sha512-REwLSr1VgOVNJZwP3y3mldhOjBHlM5fqTvq/tC8NaYpAzx9O4rZdoUSZxW3tYtoNoYrHpB8kzRTeZl8WSdKllw==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.4.7", - "@storybook/csf-plugin": "8.4.7", - "@storybook/react-dom-shim": "8.4.7", + "@storybook/blocks": "8.5.0", + "@storybook/csf-plugin": "8.5.0", + "@storybook/react-dom-shim": "8.5.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", "ts-dedent": "^2.0.0" @@ -6962,7 +6964,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-docs/node_modules/@mdx-js/react": { @@ -6984,21 +6986,21 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.4.7.tgz", - "integrity": "sha512-+BtZHCBrYtQKILtejKxh0CDRGIgTl9PumfBOKRaihYb4FX1IjSAxoV/oo/IfEjlkF5f87vouShWsRa8EUauFDw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.5.0.tgz", + "integrity": "sha512-RrHRdaw2j3ugZiYQ6OHt3Ff08ID4hwAvipqULEsbEnEw3VlXOaW/MT5e2M7kW3MHskQ3iJ6XAD1Y1rNm432Pzw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.4.7", - "@storybook/addon-backgrounds": "8.4.7", - "@storybook/addon-controls": "8.4.7", - "@storybook/addon-docs": "8.4.7", - "@storybook/addon-highlight": "8.4.7", - "@storybook/addon-measure": "8.4.7", - "@storybook/addon-outline": "8.4.7", - "@storybook/addon-toolbars": "8.4.7", - "@storybook/addon-viewport": "8.4.7", + "@storybook/addon-actions": "8.5.0", + "@storybook/addon-backgrounds": "8.5.0", + "@storybook/addon-controls": "8.5.0", + "@storybook/addon-docs": "8.5.0", + "@storybook/addon-highlight": "8.5.0", + "@storybook/addon-measure": "8.5.0", + "@storybook/addon-outline": "8.5.0", + "@storybook/addon-toolbars": "8.5.0", + "@storybook/addon-viewport": "8.5.0", "ts-dedent": "^2.0.0" }, "funding": { @@ -7006,13 +7008,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.4.7.tgz", - "integrity": "sha512-whQIDBd3PfVwcUCrRXvCUHWClXe9mQ7XkTPCdPo4B/tZ6Z9c6zD8JUHT76ddyHivixFLowMnA8PxMU6kCMAiNw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.5.0.tgz", + "integrity": "sha512-/JxYzMK5aJSYs0K/0eAEFyER2dMoxqwM891MdnkNwLFdyrM58lzHee00F9oEX6zeQoRUNQPRepq0ui2PvbTMGw==", "dev": true, "license": "MIT", "dependencies": { @@ -7023,19 +7025,19 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-interactions": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.4.7.tgz", - "integrity": "sha512-fnufT3ym8ht3HHUIRVXAH47iOJW/QOb0VSM+j269gDuvyDcY03D1civCu1v+eZLGaXPKJ8vtjr0L8zKQ/4P0JQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.5.0.tgz", + "integrity": "sha512-vX1a8qS7o/W3kEzfL/CqOj/Rr6UlGLT/n0KXMpfIhx63tzxe1a1qGpFLL0h0zqAVPHZIOu9humWMKri5Iny6oA==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.4.7", - "@storybook/test": "8.4.7", + "@storybook/instrumenter": "8.5.0", + "@storybook/test": "8.5.0", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -7044,17 +7046,17 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-links": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.4.7.tgz", - "integrity": "sha512-L/1h4dMeMKF+MM0DanN24v5p3faNYbbtOApMgg7SlcBT/tgo3+cAjkgmNpYA8XtKnDezm+T2mTDhB8mmIRZpIQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.5.0.tgz", + "integrity": "sha512-Y11GIByAYqn0TibI/xsy0vCe+ZxJS9PVAAoHngLxkf9J4WodAXcJABr8ZPlWDNdaEhSS/FF7UQUmNag0UC2/pw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12", "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" }, @@ -7064,7 +7066,7 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.4.7" + "storybook": "^8.5.0" }, "peerDependenciesMeta": { "react": { @@ -7073,9 +7075,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.4.7.tgz", - "integrity": "sha512-QfvqYWDSI5F68mKvafEmZic3SMiK7zZM8VA0kTXx55hF/+vx61Mm0HccApUT96xCXIgmwQwDvn9gS4TkX81Dmw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.5.0.tgz", + "integrity": "sha512-e8pJy2sICyj0Ff0W1PFc6HPE6PqcjnnHtfuDaO3M9uSKJLYkpTWJ8i1VSP178f8seq44r5/PdQCHqs5q5l3zgw==", "dev": true, "license": "MIT", "dependencies": { @@ -7087,13 +7089,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-outline": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.4.7.tgz", - "integrity": "sha512-6LYRqUZxSodmAIl8icr585Oi8pmzbZ90aloZJIpve+dBAzo7ydYrSQxxoQEVltXbKf3VeVcrs64ouAYqjisMYA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.5.0.tgz", + "integrity": "sha512-r12sk1b38Ph6NroWAOTfjbJ/V+gDobm7tKQQlbSDf6fgX7cqyPHmKjfNDCOCQpXouZm/Jm+41zd758PW+Yt4ng==", "dev": true, "license": "MIT", "dependencies": { @@ -7105,17 +7107,17 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-storysource": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-8.4.7.tgz", - "integrity": "sha512-ckMSiVf+8V3IVN3lTdzCdToXVoGhZ57pwMv0OpkdVIEn6sqHFHwHrOYiXpF3SXTicwayjylcL1JXTGoBFFDVOQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-8.5.0.tgz", + "integrity": "sha512-AvnWIJk1CNHStvLHZp4AK/MqU4IWLt0O6CsfCpH868EgfHcnQ4kbELTVSbMCMraBfcvOtbXidEWTUb+/Pc2KWg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/source-loader": "8.4.7", + "@storybook/source-loader": "8.5.0", "estraverse": "^5.2.0", "tiny-invariant": "^1.3.1" }, @@ -7124,7 +7126,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-storysource/node_modules/estraverse": { @@ -7138,9 +7140,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.4.7.tgz", - "integrity": "sha512-OSfdv5UZs+NdGB+nZmbafGUWimiweJ/56gShlw8Neo/4jOJl1R3rnRqqY7MYx8E4GwoX+i3GF5C3iWFNQqlDcw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.5.0.tgz", + "integrity": "sha512-q3yYYO2WX8K2DYNM++FzixGDjzYaeREincgsl2WXYXrcuGb5hkOoOgRiAQL8Nz9NQ1Eo+B/yZxrhG/5VoVhUUQ==", "dev": true, "license": "MIT", "funding": { @@ -7148,13 +7150,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.4.7.tgz", - "integrity": "sha512-hvczh/jjuXXcOogih09a663sRDDSATXwbE866al1DXgbDFraYD/LxX/QDb38W9hdjU9+Qhx8VFIcNWoMQns5HQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.5.0.tgz", + "integrity": "sha512-MlhVELImk9YzjEgGR2ciLC8d5tUSGcO7my4kWIClN0VyTRcvG4ZfwrsEC+jN3/l52nrgjLmKrDX5UAGZm6w5mQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7165,17 +7167,17 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/blocks": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.4.7.tgz", - "integrity": "sha512-+QH7+JwXXXIyP3fRCxz/7E2VZepAanXJM7G8nbR3wWsqWgrRp4Wra6MvybxAYCxU7aNfJX5c+RW84SNikFpcIA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.5.0.tgz", + "integrity": "sha512-2sTOgjH/JFOgWnpqkKjpKVvKAgUaC9ZBjH1gnCoA5dne/SDafYaCAYfv6yZn7g2Xm1sTxWCAmMIUkYSALeWr+w==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12", "@storybook/icons": "^1.2.12", "ts-dedent": "^2.0.0" }, @@ -7186,7 +7188,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.4.7" + "storybook": "^8.5.0" }, "peerDependenciesMeta": { "react": { @@ -7198,13 +7200,13 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.4.7.tgz", - "integrity": "sha512-LovyXG5VM0w7CovI/k56ZZyWCveQFVDl0m7WwetpmMh2mmFJ+uPQ35BBsgTvTfc8RHi+9Q3F58qP1MQSByXi9g==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.5.0.tgz", + "integrity": "sha512-GVJFjAxX/mL3bmXX6N619ShuYprkh6Ix08JU6QGNf/tTkG92BxjgCqQdfovBrviDhFyO2bhkdlEp6ujMo5CbZA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "8.4.7", + "@storybook/csf-plugin": "8.5.0", "browser-assert": "^1.2.1", "ts-dedent": "^2.0.0" }, @@ -7213,7 +7215,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7", + "storybook": "^8.5.0", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" } }, @@ -7251,9 +7253,9 @@ } }, "node_modules/@storybook/components": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.4.7.tgz", - "integrity": "sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.5.0.tgz", + "integrity": "sha512-DhaHtwfEcfWYj3ih/5RBSDHe3Idxyf+oHw2/DmaLKJX6MluhdK3ZqigjRcTmA9Gj/SbR4CkHEEtDzAvBlW0BYw==", "dev": true, "license": "MIT", "funding": { @@ -7265,13 +7267,13 @@ } }, "node_modules/@storybook/core": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.4.7.tgz", - "integrity": "sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.5.0.tgz", + "integrity": "sha512-apborO6ynns7SeydBSqE9o0zT6JSU+VY4gLFPJROGcconvSW4bS5xtJCsgjlulceyWVxepFHGXl4jEZw+SktXA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", @@ -7311,7 +7313,9 @@ } }, "node_modules/@storybook/csf": { - "version": "0.1.11", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.12.tgz", + "integrity": "sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==", "dev": true, "license": "MIT", "dependencies": { @@ -7319,9 +7323,9 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.4.7.tgz", - "integrity": "sha512-Fgogplu4HImgC+AYDcdGm1rmL6OR1rVdNX1Be9C/NEXwOCpbbBwi0BxTf/2ZxHRk9fCeaPEcOdP5S8QHfltc1g==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.5.0.tgz", + "integrity": "sha512-cs6ogviNyLG1h9J8Sb47U3DqIrQmn2EHm4ta3fpCeV3ABbrMgbzYyxtmybz4g/AwlDgjAZAt6PPcXkfCJ6p2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7332,7 +7336,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/csf-tools": { @@ -7426,9 +7430,9 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.4.7.tgz", - "integrity": "sha512-k6NSD3jaRCCHAFtqXZ7tw8jAzD/yTEWXGya+REgZqq5RCkmJ+9S4Ytp/6OhQMPtPFX23gAuJJzTQVLcCr+gjRg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.5.0.tgz", + "integrity": "sha512-eZ/UY6w4U2vay+wX7QVwKiRoyMzZscuv6v4k4r8BlmHPFWbhiZDO9S2GsG16UkyKnrQrYk432he70n7hn1Xvmg==", "dev": true, "license": "MIT", "dependencies": { @@ -7440,13 +7444,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/manager-api": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.4.7.tgz", - "integrity": "sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.5.0.tgz", + "integrity": "sha512-Ildriueo3eif4M+gMlMxu/mrBIbAnz8+oesmQJKdzZfe/U9eQTI9OUqJsxx/IVBmdzQ3ySsgNmzj5VweRkse4A==", "dev": true, "license": "MIT", "funding": { @@ -7458,9 +7462,9 @@ } }, "node_modules/@storybook/preview-api": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.4.7.tgz", - "integrity": "sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.5.0.tgz", + "integrity": "sha512-g0XbD54zMUkl6bpuA7qEBCE9rW1QV6KKmwkO4bkxMOJcMke3x9l00JTaYn7Un8wItjXiS3BIG15B6mnfBG7fng==", "dev": true, "license": "MIT", "funding": { @@ -7472,18 +7476,18 @@ } }, "node_modules/@storybook/react": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.4.7.tgz", - "integrity": "sha512-nQ0/7i2DkaCb7dy0NaT95llRVNYWQiPIVuhNfjr1mVhEP7XD090p0g7eqUmsx8vfdHh2BzWEo6CoBFRd3+EXxw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.5.0.tgz", + "integrity": "sha512-/jbkmGGc95N7KduIennL/k8grNTP5ye/YBnkcS4TbF7uDWBtKy3/Wqvx5BIlFXq3qeUnZJ8YtZc0lPIYeCY8XQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/components": "8.4.7", + "@storybook/components": "8.5.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "8.4.7", - "@storybook/preview-api": "8.4.7", - "@storybook/react-dom-shim": "8.4.7", - "@storybook/theming": "8.4.7" + "@storybook/manager-api": "8.5.0", + "@storybook/preview-api": "8.5.0", + "@storybook/react-dom-shim": "8.5.0", + "@storybook/theming": "8.5.0" }, "engines": { "node": ">=18.0.0" @@ -7493,10 +7497,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.4.7", + "@storybook/test": "8.5.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.4.7", + "storybook": "^8.5.0", "typescript": ">= 4.2.x" }, "peerDependenciesMeta": { @@ -7509,9 +7513,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.4.7.tgz", - "integrity": "sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.5.0.tgz", + "integrity": "sha512-7P8xg4FiuFpM6kQOzZynno+0zyLVs8NgsmRK58t3JRZXbda1tzlxTXzvqx4hUevvbPJGjmrB0F3xTFH+8Otnvw==", "dev": true, "license": "MIT", "funding": { @@ -7521,20 +7525,20 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/react-vite": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.4.7.tgz", - "integrity": "sha512-iiY9iLdMXhDnilCEVxU6vQsN72pW3miaf0WSenOZRyZv3HdbpgOxI0qapOS0KCyRUnX9vTlmrSPTMchY4cAeOg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.5.0.tgz", + "integrity": "sha512-4f5AM8aPs2aTBeiycotinaDIPJg/YRtPb0F1dDquS097eUOeImS73+NSSCwrIjmSiapG/KWVkPgFnadEumFkAA==", "dev": true, "license": "MIT", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.4.2", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.4.7", - "@storybook/react": "8.4.7", + "@storybook/builder-vite": "8.5.0", + "@storybook/react": "8.5.0", "find-up": "^5.0.0", "magic-string": "^0.30.0", "react-docgen": "^7.0.0", @@ -7549,10 +7553,16 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { + "@storybook/test": "8.5.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.4.7", + "storybook": "^8.5.0", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "@storybook/test": { + "optional": true + } } }, "node_modules/@storybook/react-vite/node_modules/find-up": { @@ -7636,13 +7646,13 @@ } }, "node_modules/@storybook/source-loader": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-8.4.7.tgz", - "integrity": "sha512-DrsYGGfNbbqlMzkhbLoNyNqrPa4QIkZ6O7FJ8Z/8jWb0cerQH2N6JW6k12ZnXgs8dO2Z33+iSEDIV8odh0E0PA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-8.5.0.tgz", + "integrity": "sha512-XsXeYakkjZ2TjvLBfr/vH1G/NK3ZVrU/asI7gqEyzd725YiM12sLp7zlnIpVtGJTCRCzWn69jqzmc4WifFon/g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12", "es-toolkit": "^1.22.0", "estraverse": "^5.2.0", "prettier": "^3.1.1" @@ -7652,7 +7662,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/source-loader/node_modules/estraverse": { @@ -7666,15 +7676,15 @@ } }, "node_modules/@storybook/test": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.4.7.tgz", - "integrity": "sha512-AhvJsu5zl3uG40itSQVuSy5WByp3UVhS6xAnme4FWRwgSxhvZjATJ3AZkkHWOYjnnk+P2/sbz/XuPli1FVCWoQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.5.0.tgz", + "integrity": "sha512-M/DdPlI6gwL7NGkK5o7GYjdEBp95AsFEUtW29zQfnVIAngYugzi3nIuM/XkQHunidVdAZCYjw2s2Yhhsx/m9sw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12", "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.4.7", + "@storybook/instrumenter": "8.5.0", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/user-event": "14.5.2", @@ -7686,13 +7696,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.4.7" + "storybook": "^8.5.0" } }, "node_modules/@storybook/theming": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.4.7.tgz", - "integrity": "sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.5.0.tgz", + "integrity": "sha512-591LbOj/HMmHYUfLgrMerxhF1A9mY61HWKxcRpB6xxalc1Xw1kRtQ49DcwuTXnUu9ktBB3nuOzPNPQPFSh/7PQ==", "dev": true, "license": "MIT", "funding": { @@ -10764,6 +10774,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "dev": true, @@ -12558,6 +12599,21 @@ "node": ">=10" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "dev": true, @@ -12721,12 +12777,11 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -15496,15 +15551,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -15521,6 +15583,20 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "dev": true, @@ -15740,11 +15816,13 @@ "license": "MIT" }, "node_modules/gopd": { - "version": "1.0.1", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15851,7 +15929,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", "engines": { @@ -16406,11 +16486,16 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -16564,12 +16649,16 @@ } }, "node_modules/is-regex": { - "version": "1.1.4", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -19356,6 +19445,13 @@ "version": "4.17.21", "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.camelcase": { "version": "4.3.0", "dev": true, @@ -19820,6 +19916,16 @@ "node": ">=16" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "dev": true, @@ -25964,13 +26070,15 @@ "license": "ISC" }, "node_modules/safe-regex-test": { - "version": "1.0.3", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -26388,13 +26496,13 @@ } }, "node_modules/storybook": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.7.tgz", - "integrity": "sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.5.0.tgz", + "integrity": "sha512-cEx42OlCetManF+cONVJVYP7SYsnI2K922DfWKmZhebP0it0n6TUof4y5/XzJ8YUruwPgyclGLdX8TvdRuNSfw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.4.7" + "@storybook/core": "8.5.0" }, "bin": { "getstorybook": "bin/index.cjs", @@ -28839,6 +28947,8 @@ }, "node_modules/util": { "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "license": "MIT", "dependencies": { @@ -29201,6 +29311,37 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/vitest-axe": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vitest-axe/-/vitest-axe-0.1.0.tgz", + "integrity": "sha512-jvtXxeQPg8R/2ANTY8QicA5pvvdRP4F0FsVUAHANJ46YCDASie/cuhlSzu0DGcLmZvGBSBNsNuK3HqfaeknyvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.0.0", + "axe-core": "^4.4.2", + "chalk": "^5.0.1", + "dom-accessibility-api": "^0.5.14", + "lodash-es": "^4.17.21", + "redent": "^3.0.0" + }, + "peerDependencies": { + "vitest": ">=0.16.0" + } + }, + "node_modules/vitest-axe/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "dev": true, @@ -29915,15 +30056,15 @@ "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", "@rollup/plugin-virtual": "3.0.2", - "@storybook/addon-a11y": "^8.4.7", - "@storybook/addon-actions": "^8.4.7", - "@storybook/addon-essentials": "^8.4.7", - "@storybook/addon-interactions": "^8.4.7", - "@storybook/addon-links": "^8.4.7", - "@storybook/addon-storysource": "^8.4.7", - "@storybook/preview-api": "^8.4.7", - "@storybook/react": "^8.4.7", - "@storybook/react-vite": "^8.4.7", + "@storybook/addon-a11y": "^8.5.0", + "@storybook/addon-actions": "^8.5.0", + "@storybook/addon-essentials": "^8.5.0", + "@storybook/addon-interactions": "^8.5.0", + "@storybook/addon-links": "^8.5.0", + "@storybook/addon-storysource": "^8.5.0", + "@storybook/preview-api": "^8.5.0", + "@storybook/react": "^8.5.0", + "@storybook/react-vite": "^8.5.0", "@storybook/source-loader": "^8.4.7", "@storybook/theming": "^8.4.7", "@testing-library/dom": "^10.4.0", @@ -29987,7 +30128,7 @@ "rollup-plugin-postcss": "4.0.2", "rollup-plugin-visualizer": "5.9.2", "semver": "7.6.2", - "storybook": "^8.4.7", + "storybook": "^8.5.0", "styled-components": "5.3.11", "terser": "5.36.0", "ts-toolbelt": "9.6.0", diff --git a/packages/react/package.json b/packages/react/package.json index 19090b68718..4efedd10bd9 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -125,15 +125,15 @@ "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", "@rollup/plugin-virtual": "3.0.2", - "@storybook/addon-a11y": "^8.4.7", - "@storybook/addon-actions": "^8.4.7", - "@storybook/addon-essentials": "^8.4.7", - "@storybook/addon-interactions": "^8.4.7", - "@storybook/addon-links": "^8.4.7", - "@storybook/addon-storysource": "^8.4.7", - "@storybook/preview-api": "^8.4.7", - "@storybook/react": "^8.4.7", - "@storybook/react-vite": "^8.4.7", + "@storybook/addon-a11y": "^8.5.0", + "@storybook/addon-actions": "^8.5.0", + "@storybook/addon-essentials": "^8.5.0", + "@storybook/addon-interactions": "^8.5.0", + "@storybook/addon-links": "^8.5.0", + "@storybook/addon-storysource": "^8.5.0", + "@storybook/preview-api": "^8.5.0", + "@storybook/react": "^8.5.0", + "@storybook/react-vite": "^8.5.0", "@storybook/source-loader": "^8.4.7", "@storybook/theming": "^8.4.7", "@testing-library/dom": "^10.4.0", @@ -197,7 +197,7 @@ "rollup-plugin-postcss": "4.0.2", "rollup-plugin-visualizer": "5.9.2", "semver": "7.6.2", - "storybook": "^8.4.7", + "storybook": "^8.5.0", "styled-components": "5.3.11", "terser": "5.36.0", "ts-toolbelt": "9.6.0", From 821bf82d249f75f4077f67416943e9cf73e8fe0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:54:59 +0000 Subject: [PATCH 20/28] chore(deps-dev): bump vite from 5.2.14 to 5.4.12 (#5587) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.14 to 5.4.12. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.12/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.12/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/codesandbox/package.json | 2 +- package-lock.json | 68 +++++-------------------------- 2 files changed, 12 insertions(+), 58 deletions(-) diff --git a/examples/codesandbox/package.json b/examples/codesandbox/package.json index b785b91c3ec..18e9fc9781b 100644 --- a/examples/codesandbox/package.json +++ b/examples/codesandbox/package.json @@ -26,6 +26,6 @@ "eslint-plugin-react-refresh": "^0.4.7", "styled-components": "5.x", "typescript": "^5.7.2", - "vite": "^5.2.14" + "vite": "^5.4.12" } } diff --git a/package-lock.json b/package-lock.json index 8f51537e559..c4e17831dee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,7 @@ "eslint-plugin-react-refresh": "^0.4.7", "styled-components": "5.x", "typescript": "^5.7.2", - "vite": "^5.2.14" + "vite": "^5.4.12" } }, "examples/theming": { @@ -29194,13 +29194,15 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.2.14", + "version": "5.4.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", + "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -29219,6 +29221,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -29236,6 +29239,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -29247,58 +29253,6 @@ } } }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.20.2", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "dev": true, From 5c33323b019eee4ffbee59683e39266bc3370334 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 18:17:39 +0000 Subject: [PATCH 21/28] chore(deps-dev): bump yaml from 2.3.4 to 2.7.0 (#5571) Bumps [yaml](https://github.com/eemeli/yaml) from 2.3.4 to 2.7.0. - [Release notes](https://github.com/eemeli/yaml/releases) - [Commits](https://github.com/eemeli/yaml/compare/v2.3.4...v2.7.0) --- updated-dependencies: - dependency-name: yaml dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh Black --- package-lock.json | 19 +++++++++++++++++-- packages/react/package.json | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4e17831dee..64325924fc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19908,6 +19908,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/markdownlint-cli2/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, "node_modules/markdownlint-micromark": { "version": "0.1.7", "dev": true, @@ -29701,9 +29711,14 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.3.4", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -30092,7 +30107,7 @@ "unist-util-find": "3.0.0", "unist-util-find-before": "4.0.0", "unist-util-flat-filter": "2.0.0", - "yaml": "2.3.4" + "yaml": "2.7.0" }, "engines": { "node": ">=12", diff --git a/packages/react/package.json b/packages/react/package.json index 4efedd10bd9..f79f6433cc9 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -207,7 +207,7 @@ "unist-util-find": "3.0.0", "unist-util-find-before": "4.0.0", "unist-util-flat-filter": "2.0.0", - "yaml": "2.3.4" + "yaml": "2.7.0" }, "peerDependencies": { "@types/react": "^18.0.0", From b66195900793006af301fd1bfb5c82849eac05f1 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 22 Jan 2025 12:48:35 -0600 Subject: [PATCH 22/28] refactor(ButtonBase): update selector to have specificty 0,1,0 (#5584) * refactor(ButtonBase): update selector to have specificty 0,1,0 * chore: add changeset --- .changeset/slow-nails-reflect.md | 5 +++++ packages/react/src/Button/ButtonBase.module.css | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/slow-nails-reflect.md diff --git a/.changeset/slow-nails-reflect.md b/.changeset/slow-nails-reflect.md new file mode 100644 index 00000000000..3b234569101 --- /dev/null +++ b/.changeset/slow-nails-reflect.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Update specificity for ButtonBase to be at least 0,1,0 diff --git a/packages/react/src/Button/ButtonBase.module.css b/packages/react/src/Button/ButtonBase.module.css index 00c49d97207..24bf4e0b8ea 100644 --- a/packages/react/src/Button/ButtonBase.module.css +++ b/packages/react/src/Button/ButtonBase.module.css @@ -1,5 +1,5 @@ /* Base styles */ -:where(.ButtonBase) { +.ButtonBase { display: flex; min-width: max-content; height: var(--control-medium-size); @@ -54,21 +54,21 @@ } /* Visuals */ - & .Visual { + & :where(.Visual) { display: flex; color: var(--fgColor-muted); pointer-events: none; } /* mostly for CounterLabel */ - & .VisualWrap { + & :where(.VisualWrap) { display: flex; pointer-events: none; } /* IconButton */ - &.IconButton { + &:where(.IconButton) { display: inline-grid; width: var(--control-medium-size); min-width: unset; @@ -88,7 +88,7 @@ /* LinkButton */ - &[href] { + &:where([href]) { display: inline-flex; &:hover { @@ -98,7 +98,7 @@ /* Button layout */ - & .ButtonContent { + & :where(.ButtonContent) { flex: 1 0 auto; display: grid; grid-template-areas: 'leadingVisual text trailingVisual'; @@ -125,7 +125,7 @@ grid-area: leadingVisual; } - & .Label { + & :where(.Label) { /* stylelint-disable-next-line primer/typography */ line-height: 1.4285714; /* temporary until we use Text component with --text-body-lineHeight-medium */ white-space: nowrap; From bd405df12b5816e420e95628548a6cd249d7e31a Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:15:52 -0500 Subject: [PATCH 23/28] Fix reflow issue (#5589) --- packages/react/src/Button/Button.features.stories.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react/src/Button/Button.features.stories.tsx b/packages/react/src/Button/Button.features.stories.tsx index 4574a6ad4ec..0d34f3deb5e 100644 --- a/packages/react/src/Button/Button.features.stories.tsx +++ b/packages/react/src/Button/Button.features.stories.tsx @@ -71,7 +71,7 @@ export const TrailingCounterAllVariants = () => { } return ( <> -
+ @@ -96,7 +96,7 @@ export const TrailingCounterAllVariants = () => { -
+

In these examples, a live region has been implemented to communicate the change.

From 16c572e47475eb402c100a219049cbfc1141a597 Mon Sep 17 00:00:00 2001 From: Marie Lucca <40550942+francinelucca@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:48:42 -0500 Subject: [PATCH 24/28] fix(SelectPanel): pass anchorId to AnchoredOverlay (#5549) * fix(SelectPanel): pass anchorId to AnchoredOverlay * Create tricky-ducks-pretend.md * docs(FormControl): correct selectPanel example aria-labelledby * docs(FormControl): small fix to selectPanel story --- .changeset/tricky-ducks-pretend.md | 5 +++++ .../src/FormControl/FormControl.features.stories.tsx | 9 +++++---- packages/react/src/SelectPanel/SelectPanel.tsx | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .changeset/tricky-ducks-pretend.md diff --git a/.changeset/tricky-ducks-pretend.md b/.changeset/tricky-ducks-pretend.md new file mode 100644 index 00000000000..fd0db6f3cdf --- /dev/null +++ b/.changeset/tricky-ducks-pretend.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +fix(SelectPanel): pass anchorId to AnchoredOverlay diff --git a/packages/react/src/FormControl/FormControl.features.stories.tsx b/packages/react/src/FormControl/FormControl.features.stories.tsx index cdf06c1a6f7..0b35d2307df 100644 --- a/packages/react/src/FormControl/FormControl.features.stories.tsx +++ b/packages/react/src/FormControl/FormControl.features.stories.tsx @@ -314,18 +314,19 @@ export const WithSelectPanel = () => { return ( - Select Labels + Select Labels ( + renderAnchor={({children, id, ...anchorProps}) => ( )} open={open} diff --git a/packages/react/src/SelectPanel/SelectPanel.tsx b/packages/react/src/SelectPanel/SelectPanel.tsx index 39d41d26094..facc121e532 100644 --- a/packages/react/src/SelectPanel/SelectPanel.tsx +++ b/packages/react/src/SelectPanel/SelectPanel.tsx @@ -102,6 +102,7 @@ export function SelectPanel({ overlayProps, sx, className, + id, ...listProps }: SelectPanelProps): JSX.Element { const titleId = useId() @@ -213,6 +214,7 @@ export function SelectPanel({ }} focusTrapSettings={focusTrapSettings} focusZoneSettings={focusZoneSettings} + anchorId={id} > {usingModernActionList ? null : ( From ccc3c9926b0b3ff0b02fd2520883ea4a14f4046d Mon Sep 17 00:00:00 2001 From: Daniel Doyle Date: Thu, 23 Jan 2025 10:52:17 -0600 Subject: [PATCH 25/28] Improve programmatic state management of UnderlinePanels (#5527) * add onSelect prop to UnderlinePanels and UnderlinePanels.Tab * UnderlinePanels doc updates * unit test for programmatically selecting tab + updates to underline panels * rename unit test + code clean-up * add test for tab onSelect prop * comment explaining UnderlinePanels changes * pr feedback * add changeset * storybook updates * fixed UnderlinePanels.Tab story rendering issues * fix playwright vrt regressions * added UnderlinePanels.Tab story to .dev * remove no tabs selected case from dev story --------- Co-authored-by: Marie Lucca <40550942+francinelucca@users.noreply.github.com> --- .changeset/tasty-experts-fix.md | 5 + .../UnderlinePanels.dev.stories.tsx | 32 ++++- .../UnderlinePanels/UnderlinePanels.docs.json | 8 +- .../UnderlinePanels.stories.tsx | 87 ++++++++++-- .../UnderlinePanels/UnderlinePanels.test.tsx | 48 +++++++ .../UnderlinePanels/UnderlinePanels.tsx | 127 ++++++++++++------ 6 files changed, 246 insertions(+), 61 deletions(-) create mode 100644 .changeset/tasty-experts-fix.md diff --git a/.changeset/tasty-experts-fix.md b/.changeset/tasty-experts-fix.md new file mode 100644 index 00000000000..fa0140846c6 --- /dev/null +++ b/.changeset/tasty-experts-fix.md @@ -0,0 +1,5 @@ +--- +"@primer/react": minor +--- + +Add an onSelect callback for UnderlinePanels.Tab diff --git a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.dev.stories.tsx b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.dev.stories.tsx index 6ffd6f3a423..422d2a5dc49 100644 --- a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.dev.stories.tsx +++ b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.dev.stories.tsx @@ -1,11 +1,12 @@ import React from 'react' -import type {Meta} from '@storybook/react' -import UnderlinePanels from './UnderlinePanels' import type {ComponentProps} from '../../utils/types' +import type {Meta, StoryFn} from '@storybook/react' +import UnderlinePanels from './UnderlinePanels' export default { title: 'Experimental/Components/UnderlinePanels/Dev', component: UnderlinePanels, + subcomponents: {Tab: UnderlinePanels.Tab, Panel: UnderlinePanels.Panel}, } as Meta> export const Default = () => ( @@ -18,3 +19,30 @@ export const Default = () => ( Panel 3 ) + +export const SingleTabPlayground: StoryFn> = args => { + return ( + + Users + Users Panel + + ) +} + +SingleTabPlayground.args = { + 'aria-selected': true, + counter: '14K', +} + +SingleTabPlayground.argTypes = { + 'aria-selected': { + control: { + type: 'boolean', + }, + }, + counter: { + control: { + type: 'text', + }, + }, +} diff --git a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.docs.json b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.docs.json index 233695f5b32..f73786fdd73 100644 --- a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.docs.json +++ b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.docs.json @@ -72,7 +72,13 @@ "name": "aria-selected", "type": "| boolean | 'true' | 'false'", "defaultValue": "false", - "description": "Whether this is the selected tab. For more information about `aria-current`, see [MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)." + "description": "Whether this is the selected tab. For more information about `aria-selected`, see [MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)." + }, + { + "name": "onSelect", + "type": "(event) => void", + "defaultValue": "", + "description": "The handler that gets called when the tab is selected" }, { "name": "counter", diff --git a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.stories.tsx b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.stories.tsx index 08fe30740a0..bcbf370d80f 100644 --- a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.stories.tsx +++ b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.stories.tsx @@ -1,20 +1,79 @@ import React from 'react' -import type {Meta} from '@storybook/react' +import type {Meta, StoryFn} from '@storybook/react' import UnderlinePanels from './UnderlinePanels' -import type {ComponentProps} from '../../utils/types' -export default { +const meta: Meta = { title: 'Experimental/Components/UnderlinePanels', component: UnderlinePanels, -} as Meta> + parameters: { + controls: { + expanded: true, + }, + }, + argTypes: { + 'aria-label': { + type: { + name: 'string', + }, + }, + 'aria-labelledby': { + type: { + name: 'string', + }, + }, + id: { + type: { + name: 'string', + }, + }, + loadingCounters: { + control: { + type: 'boolean', + }, + }, + }, + args: { + 'aria-label': 'Select a tab', + 'aria-labelledby': 'tab', + id: 'test', + loadingCounters: false, + }, +} -export const Default = () => ( - - Tab 1 - Tab 2 - Tab 3 - Panel 1 - Panel 2 - Panel 3 - -) +export default meta + +export const Default: StoryFn = () => { + const tabs = ['Tab 1', 'Tab 2', 'Tab 3'] + const panels = ['Panel 1', 'Panel 2', 'Panel 3'] + + return ( + + {tabs.map((tab: string, index: number) => ( + + {tab} + + ))} + {panels.map((panel: string, index: number) => ( + {panel} + ))} + + ) +} + +export const Playgound: StoryFn = args => { + const tabs = ['Tab 1', 'Tab 2', 'Tab 3'] + const panels = ['Panel 1', 'Panel 2', 'Panel 3'] + + return ( + + {tabs.map((tab: string, index: number) => ( + + {tab} + + ))} + {panels.map((panel: string, index: number) => ( + {panel} + ))} + + ) +} diff --git a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.test.tsx b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.test.tsx index 22b18e74358..ebda94ffbe2 100644 --- a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.test.tsx +++ b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.test.tsx @@ -58,6 +58,54 @@ describe('UnderlinePanels', () => { const tabList = screen.getByRole('tablist') expect(tabList).toHaveAccessibleName('Select a tab') }) + it('updates the selected tab when aria-selected changes', () => { + const {rerender} = render( + + Tab 1 + Tab 2 + Panel 1 + Panel 2 + , + ) + + // Verify that the first tab is selected and second tab is not + let firstTab = screen.getByRole('tab', {name: 'Tab 1'}) + let secondTab = screen.getByRole('tab', {name: 'Tab 2'}) + + expect(firstTab).toHaveAttribute('aria-selected', 'true') + expect(secondTab).toHaveAttribute('aria-selected', 'false') + + // Programmatically select the second tab by updating the aria-selected prop + rerender( + + Tab 1 + Tab 2 + Panel 1 + Panel 2 + , + ) + + // Verify the updated aria-selected prop changes which tab is selected + firstTab = screen.getByRole('tab', {name: 'Tab 1'}) + secondTab = screen.getByRole('tab', {name: 'Tab 2'}) + + expect(firstTab).toHaveAttribute('aria-selected', 'false') + expect(secondTab).toHaveAttribute('aria-selected', 'true') + }) + it('calls onSelect when a tab is clicked', () => { + const onSelect = jest.fn() + render( + + Tab 1 + Panel 1 + , + ) + + const tab = screen.getByRole('tab', {name: 'Tab 1'}) + tab.click() + + expect(onSelect).toHaveBeenCalled() + }) it('throws an error when the neither aria-label nor aria-labelledby are passed', () => { render() }) diff --git a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.tsx b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.tsx index 2224d77d8cc..5d5bd0a2cf8 100644 --- a/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.tsx +++ b/packages/react/src/experimental/UnderlinePanels/UnderlinePanels.tsx @@ -1,4 +1,13 @@ -import React, {Children, isValidElement, cloneElement, useState, useRef, type FC, type PropsWithChildren} from 'react' +import React, { + Children, + isValidElement, + cloneElement, + useState, + useRef, + type FC, + type PropsWithChildren, + useEffect, +} from 'react' import {TabContainerElement} from '@github/tab-container-element' import type {IconProps} from '@primer/octicons-react' import {createComponent} from '../../utils/create-component' @@ -49,6 +58,10 @@ export type TabProps = PropsWithChildren<{ * Whether this is the selected tab */ 'aria-selected'?: boolean + /** + * Callback that will trigger both on click selection and keyboard selection. + */ + onSelect?: (event: React.KeyboardEvent | React.MouseEvent) => void /** * Content of CounterLabel rendered after tab text label */ @@ -85,33 +98,40 @@ const UnderlinePanels: FC = ({ // called in the exact same order in every component render const parentId = useId(props.id) - // Loop through the chidren, if it's a tab, then add id="{id}-tab-{index}" - // If it's a panel, then add aria-labelledby="{id}-tab-{index}" - let tabIndex = 0 - let panelIndex = 0 + const [tabs, setTabs] = useState([]) + const [tabPanels, setTabPanels] = useState([]) - const childrenWithProps = Children.map(children, child => { - if (isValidElement(child) && child.type === Tab) { - return cloneElement(child, {id: `${parentId}-tab-${tabIndex++}`, loadingCounters, iconsVisible}) - } + // Make sure we have fresh prop data whenever the tabs or panels are updated (keep aria-selected current) + useEffect(() => { + // Loop through the chidren, if it's a tab, then add id="{id}-tab-{index}" + // If it's a panel, then add aria-labelledby="{id}-tab-{index}" + let tabIndex = 0 + let panelIndex = 0 - if (isValidElement(child) && child.type === Panel) { - return cloneElement(child, {'aria-labelledby': `${parentId}-tab-${panelIndex++}`}) - } - return child - }) + const childrenWithProps = Children.map(children, child => { + if (isValidElement(child) && child.type === Tab) { + return cloneElement(child, {id: `${parentId}-tab-${tabIndex++}`, loadingCounters, iconsVisible}) + } - // `tabs` and `tabPanels` need to be refs because `child.type === {type}` will become false - // after the elements are cloned by `childrenWithProps` on the first render - const tabs = useRef( - Children.toArray(childrenWithProps).filter(child => { + if (isValidElement(child) && child.type === Panel) { + return cloneElement(child, {'aria-labelledby': `${parentId}-tab-${panelIndex++}`}) + } + return child + }) + + const newTabs = Children.toArray(childrenWithProps).filter(child => { return isValidElement(child) && child.type === Tab - }), - ) - const tabPanels = useRef( - Children.toArray(childrenWithProps).filter(child => isValidElement(child) && child.type === Panel), - ) - const tabsHaveIcons = tabs.current.some(tab => React.isValidElement(tab) && tab.props.icon) + }) + + const newTabPanels = Children.toArray(childrenWithProps).filter( + child => isValidElement(child) && child.type === Panel, + ) + + setTabs(newTabs) + setTabPanels(newTabPanels) + }, [children, parentId, loadingCounters, iconsVisible]) + + const tabsHaveIcons = tabs.some(tab => React.isValidElement(tab) && tab.props.icon) const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) @@ -142,8 +162,7 @@ const UnderlinePanels: FC = ({ ) if (__DEV__) { - // only one tab can be selected at a time - const selectedTabs = tabs.current.filter(tab => { + const selectedTabs = tabs.filter(tab => { const ariaSelected = React.isValidElement(tab) && tab.props['aria-selected'] return ariaSelected === true || ariaSelected === 'true' @@ -151,10 +170,9 @@ const UnderlinePanels: FC = ({ invariant(selectedTabs.length <= 1, 'Only one tab can be selected at a time.') - // every tab has its panel invariant( - tabs.current.length === tabPanels.current.length, - `The number of tabs and panels must be equal. Counted ${tabs.current.length} tabs and ${tabPanels.current.length} panels.`, + tabs.length === tabPanels.length, + `The number of tabs and panels must be equal. Counted ${tabs.length} tabs and ${tabPanels.length} panels.`, ) } @@ -170,10 +188,10 @@ const UnderlinePanels: FC = ({ {...props} > - {tabs.current} + {tabs} - {tabPanels.current} + {tabPanels} ) } @@ -199,25 +217,46 @@ const UnderlinePanels: FC = ({ {...props} > - {tabs.current} + {tabs} - {tabPanels.current} + {tabPanels} ) } -const Tab: FC = ({'aria-selected': ariaSelected, sx: sxProp = defaultSxProp, ...props}) => ( - -) +const Tab: FC = ({'aria-selected': ariaSelected, sx: sxProp = defaultSxProp, onSelect, ...props}) => { + const clickHandler = React.useCallback( + (event: React.MouseEvent) => { + if (!event.defaultPrevented && typeof onSelect === 'function') { + onSelect(event) + } + }, + [onSelect], + ) + const keyDownHandler = React.useCallback( + (event: React.KeyboardEvent) => { + if ((event.key === ' ' || event.key === 'Enter') && !event.defaultPrevented && typeof onSelect === 'function') { + onSelect(event) + } + }, + [onSelect], + ) + + return ( + + ) +} Tab.displayName = 'UnderlinePanels.Tab' From db6c3607c43ba288d4df1a68e1590bbb5f5aedb6 Mon Sep 17 00:00:00 2001 From: Brandyn Phelps Date: Thu, 23 Jan 2025 09:25:53 -0800 Subject: [PATCH 26/28] Banner allows critical variant to use ondismiss (#5583) * Allow critical on dismiss, ready to test * add changeset * Update .changeset/blue-actors-rule.md Co-authored-by: Josh Black * Remove onDismiss action from Banner story * refactor(test): update to address eslint warnings --------- Co-authored-by: Josh Black --- .changeset/blue-actors-rule.md | 5 +++++ packages/react/src/Banner/Banner.test.tsx | 13 ++++++++----- packages/react/src/Banner/Banner.tsx | 6 ++---- 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 .changeset/blue-actors-rule.md diff --git a/.changeset/blue-actors-rule.md b/.changeset/blue-actors-rule.md new file mode 100644 index 00000000000..fb4743875e1 --- /dev/null +++ b/.changeset/blue-actors-rule.md @@ -0,0 +1,5 @@ +--- +"@primer/react": minor +--- + +Banner now supports onDismiss used when using variant critical. diff --git a/packages/react/src/Banner/Banner.test.tsx b/packages/react/src/Banner/Banner.test.tsx index 59975b0f63c..28fce588e4f 100644 --- a/packages/react/src/Banner/Banner.test.tsx +++ b/packages/react/src/Banner/Banner.test.tsx @@ -169,11 +169,14 @@ describe('Banner', () => { expect(onDismiss).toHaveBeenCalledTimes(3) }) - it('should not support onDismiss when `variant="critical"`', () => { - const onDismiss = jest.fn() - render() - expect(screen.queryByRole('button', {name: 'Dismiss banner'})).toBe(null) - }) + it.each(['critical', 'info', 'success', 'upsell', 'warning'] as const)( + 'should support onDismiss for the %s variant', + variant => { + const onDismiss = jest.fn() + render() + expect(screen.queryByRole('button', {name: 'Dismiss banner'})).toBeInTheDocument() + }, + ) it('should pass extra props onto the container element', () => { const {container} = render() diff --git a/packages/react/src/Banner/Banner.tsx b/packages/react/src/Banner/Banner.tsx index e1c7a1119e8..527e45177b0 100644 --- a/packages/react/src/Banner/Banner.tsx +++ b/packages/react/src/Banner/Banner.tsx @@ -7,7 +7,7 @@ import {useMergedRefs} from '../internal/hooks/useMergedRefs' import classes from './Banner.module.css' import type {ForwardRefComponent as PolymorphicForwardRefComponent} from '../utils/polymorphic' -type BannerVariant = 'critical' | 'info' | 'success' | 'upsell' | 'warning' +export type BannerVariant = 'critical' | 'info' | 'success' | 'upsell' | 'warning' export type BannerProps = React.ComponentPropsWithoutRef<'section'> & { /** @@ -41,8 +41,6 @@ export type BannerProps = React.ComponentPropsWithoutRef<'section'> & { /** * Optionally provide a handler to be called when the banner is dismissed. * Providing this prop will show a dismiss button. - * - * Note: This is not available for critical banners. */ onDismiss?: () => void @@ -101,7 +99,7 @@ export const Banner = React.forwardRef(function Banner }, forwardRef, ) { - const dismissible = variant !== 'critical' && onDismiss + const dismissible = !!onDismiss const hasActions = primaryAction || secondaryAction const bannerRef = React.useRef(null) const ref = useMergedRefs(forwardRef, bannerRef) From 12f1af7bd8e19a077646c25a5c8cbddd9f69aca7 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Thu, 23 Jan 2025 11:05:36 -0800 Subject: [PATCH 27/28] Move component feature flag from staff to ga (#5591) --- .changeset/cyan-gorillas-carry.md | 5 +++++ .changeset/dirty-moles-own.md | 5 +++++ .changeset/few-rockets-retire.md | 5 +++++ .changeset/flat-candles-burn.md | 5 +++++ .changeset/large-socks-clean.md | 5 +++++ .changeset/late-humans-guess.md | 5 +++++ .changeset/lucky-snakes-jump.md | 5 +++++ .changeset/pink-bats-grow.md | 5 +++++ .changeset/tough-tigers-vanish.md | 5 +++++ .changeset/tricky-avocados-live.md | 5 +++++ .changeset/wicked-zoos-bake.md | 5 +++++ packages/react/src/Breadcrumbs/Breadcrumbs.tsx | 2 +- packages/react/src/Dialog/Dialog.tsx | 2 +- packages/react/src/DialogV1/Dialog.tsx | 2 +- packages/react/src/Popover/Popover.tsx | 2 +- packages/react/src/ProgressBar/ProgressBar.tsx | 2 +- packages/react/src/Textarea/Textarea.tsx | 2 +- packages/react/src/Timeline/Timeline.tsx | 2 +- packages/react/src/TreeView/TreeView.tsx | 2 +- packages/react/src/experimental/SelectPanel2/SelectPanel.tsx | 2 +- .../internal/components/CheckboxOrRadioGroup/FeatureFlag.tsx | 2 +- packages/react/src/internal/components/UnstyledTextInput.tsx | 2 +- 22 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 .changeset/cyan-gorillas-carry.md create mode 100644 .changeset/dirty-moles-own.md create mode 100644 .changeset/few-rockets-retire.md create mode 100644 .changeset/flat-candles-burn.md create mode 100644 .changeset/large-socks-clean.md create mode 100644 .changeset/late-humans-guess.md create mode 100644 .changeset/lucky-snakes-jump.md create mode 100644 .changeset/pink-bats-grow.md create mode 100644 .changeset/tough-tigers-vanish.md create mode 100644 .changeset/tricky-avocados-live.md create mode 100644 .changeset/wicked-zoos-bake.md diff --git a/.changeset/cyan-gorillas-carry.md b/.changeset/cyan-gorillas-carry.md new file mode 100644 index 00000000000..8207b8ce2bf --- /dev/null +++ b/.changeset/cyan-gorillas-carry.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move Popover CSS modules feature flag from staff to ga diff --git a/.changeset/dirty-moles-own.md b/.changeset/dirty-moles-own.md new file mode 100644 index 00000000000..32e270dcdcd --- /dev/null +++ b/.changeset/dirty-moles-own.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move Textarea CSS modules feature flag from staff to ga diff --git a/.changeset/few-rockets-retire.md b/.changeset/few-rockets-retire.md new file mode 100644 index 00000000000..1dc6adbf1de --- /dev/null +++ b/.changeset/few-rockets-retire.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move UnstyledTextInput CSS modules feature flag from staff to ga diff --git a/.changeset/flat-candles-burn.md b/.changeset/flat-candles-burn.md new file mode 100644 index 00000000000..dc7883871f2 --- /dev/null +++ b/.changeset/flat-candles-burn.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move SelectPanel2 CSS modules feature flag from staff to ga diff --git a/.changeset/large-socks-clean.md b/.changeset/large-socks-clean.md new file mode 100644 index 00000000000..5a8840f3f9f --- /dev/null +++ b/.changeset/large-socks-clean.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move Breadcrumbs CSS modules feature flag from staff to ga diff --git a/.changeset/late-humans-guess.md b/.changeset/late-humans-guess.md new file mode 100644 index 00000000000..8ab8ca6247b --- /dev/null +++ b/.changeset/late-humans-guess.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move ProgressBar CSS modules feature flag from staff to ga diff --git a/.changeset/lucky-snakes-jump.md b/.changeset/lucky-snakes-jump.md new file mode 100644 index 00000000000..bee7fddab90 --- /dev/null +++ b/.changeset/lucky-snakes-jump.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move Dialog CSS modules feature flag from staff to ga diff --git a/.changeset/pink-bats-grow.md b/.changeset/pink-bats-grow.md new file mode 100644 index 00000000000..ecc62c6fe79 --- /dev/null +++ b/.changeset/pink-bats-grow.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move Timeline CSS modules feature flag from staff to ga diff --git a/.changeset/tough-tigers-vanish.md b/.changeset/tough-tigers-vanish.md new file mode 100644 index 00000000000..dba4e19eef8 --- /dev/null +++ b/.changeset/tough-tigers-vanish.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move DialogV1 CSS modules feature flag from staff to ga diff --git a/.changeset/tricky-avocados-live.md b/.changeset/tricky-avocados-live.md new file mode 100644 index 00000000000..5ae1b1e3382 --- /dev/null +++ b/.changeset/tricky-avocados-live.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move TreeView CSS modules feature flag from staff to ga diff --git a/.changeset/wicked-zoos-bake.md b/.changeset/wicked-zoos-bake.md new file mode 100644 index 00000000000..f8bf16cf068 --- /dev/null +++ b/.changeset/wicked-zoos-bake.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Move CheckboxOrRadioGroup CSS modules feature flag from staff to ga diff --git a/packages/react/src/Breadcrumbs/Breadcrumbs.tsx b/packages/react/src/Breadcrumbs/Breadcrumbs.tsx index 0ca3e45afab..ee33f08a482 100644 --- a/packages/react/src/Breadcrumbs/Breadcrumbs.tsx +++ b/packages/react/src/Breadcrumbs/Breadcrumbs.tsx @@ -13,7 +13,7 @@ import {useFeatureFlag} from '../FeatureFlags' import type {ForwardRefComponent as PolymorphicForwardRefComponent} from '../utils/polymorphic' const SELECTED_CLASS = 'selected' -const CSS_MODULES_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FLAG = 'primer_react_css_modules_ga' const Wrapper = toggleStyledComponent( CSS_MODULES_FLAG, diff --git a/packages/react/src/Dialog/Dialog.tsx b/packages/react/src/Dialog/Dialog.tsx index 0152906ada3..f359932bf8b 100644 --- a/packages/react/src/Dialog/Dialog.tsx +++ b/packages/react/src/Dialog/Dialog.tsx @@ -172,7 +172,7 @@ export interface DialogHeaderProps extends DialogProps { dialogDescriptionId: string } -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' const Backdrop = toggleStyledComponent( CSS_MODULES_FEATURE_FLAG, diff --git a/packages/react/src/DialogV1/Dialog.tsx b/packages/react/src/DialogV1/Dialog.tsx index 7361b223251..040e5b4165e 100644 --- a/packages/react/src/DialogV1/Dialog.tsx +++ b/packages/react/src/DialogV1/Dialog.tsx @@ -15,7 +15,7 @@ import {useFeatureFlag} from '../FeatureFlags' import {clsx} from 'clsx' import classes from './Dialog.module.css' -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' // Dialog v1 const noop = () => null diff --git a/packages/react/src/Popover/Popover.tsx b/packages/react/src/Popover/Popover.tsx index cecae661e74..e20047f956e 100644 --- a/packages/react/src/Popover/Popover.tsx +++ b/packages/react/src/Popover/Popover.tsx @@ -32,7 +32,7 @@ type StyledPopoverProps = { open?: boolean } & SxProp -const CSS_MODULES_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FLAG = 'primer_react_css_modules_ga' const StyledPopover = styled.div.attrs(({className, caret = 'top'}) => { return { diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx index 89c0fbfd1fa..d601669dbb6 100644 --- a/packages/react/src/ProgressBar/ProgressBar.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.tsx @@ -21,7 +21,7 @@ const shimmer = keyframes` to { mask-position: 0%; } ` -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' const ProgressItem = toggleStyledComponent( CSS_MODULES_FEATURE_FLAG, diff --git a/packages/react/src/Textarea/Textarea.tsx b/packages/react/src/Textarea/Textarea.tsx index ec3e02ea681..9bed4e867c8 100644 --- a/packages/react/src/Textarea/Textarea.tsx +++ b/packages/react/src/Textarea/Textarea.tsx @@ -42,7 +42,7 @@ export type TextareaProps = { } & TextareaHTMLAttributes & SxProp -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' const StyledTextarea = toggleStyledComponent( CSS_MODULES_FEATURE_FLAG, diff --git a/packages/react/src/Timeline/Timeline.tsx b/packages/react/src/Timeline/Timeline.tsx index 51382de035a..1e1553488b7 100644 --- a/packages/react/src/Timeline/Timeline.tsx +++ b/packages/react/src/Timeline/Timeline.tsx @@ -10,7 +10,7 @@ import {useFeatureFlag} from '../FeatureFlags' import classes from './Timeline.module.css' import {defaultSxProp} from '../utils/defaultSxProp' -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' type StyledTimelineProps = {clipSidebar?: boolean; className?: string} & SxProp diff --git a/packages/react/src/TreeView/TreeView.tsx b/packages/react/src/TreeView/TreeView.tsx index db2564f3a4a..4c0fd101249 100644 --- a/packages/react/src/TreeView/TreeView.tsx +++ b/packages/react/src/TreeView/TreeView.tsx @@ -27,7 +27,7 @@ import {SkeletonText} from '../experimental/Skeleton/SkeletonText' import {toggleStyledComponent} from '../internal/utils/toggleStyledComponent' import {useFeatureFlag} from '../FeatureFlags' -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' // ---------------------------------------------------------------------------- // Context diff --git a/packages/react/src/experimental/SelectPanel2/SelectPanel.tsx b/packages/react/src/experimental/SelectPanel2/SelectPanel.tsx index 9ccece930c7..d4c71e629be 100644 --- a/packages/react/src/experimental/SelectPanel2/SelectPanel.tsx +++ b/packages/react/src/experimental/SelectPanel2/SelectPanel.tsx @@ -30,7 +30,7 @@ import {useFeatureFlag} from '../../FeatureFlags' import classes from './SelectPanel.module.css' -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' const SelectPanelContext = React.createContext<{ title: string diff --git a/packages/react/src/internal/components/CheckboxOrRadioGroup/FeatureFlag.tsx b/packages/react/src/internal/components/CheckboxOrRadioGroup/FeatureFlag.tsx index cb1d25fe232..e6a5b8afae0 100644 --- a/packages/react/src/internal/components/CheckboxOrRadioGroup/FeatureFlag.tsx +++ b/packages/react/src/internal/components/CheckboxOrRadioGroup/FeatureFlag.tsx @@ -1 +1 @@ -export const CSS_MODULES_FLAG = 'primer_react_css_modules_staff' +export const CSS_MODULES_FLAG = 'primer_react_css_modules_ga' diff --git a/packages/react/src/internal/components/UnstyledTextInput.tsx b/packages/react/src/internal/components/UnstyledTextInput.tsx index 8c3b42f6ef9..cc5d0430905 100644 --- a/packages/react/src/internal/components/UnstyledTextInput.tsx +++ b/packages/react/src/internal/components/UnstyledTextInput.tsx @@ -7,7 +7,7 @@ import {useFeatureFlag} from '../../FeatureFlags' import styles from './UnstyledTextInput.module.css' import {clsx} from 'clsx' -export const TEXT_INPUT_CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_staff' +export const TEXT_INPUT_CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' type ToggledUnstyledTextInputProps = React.ComponentPropsWithoutRef<'input'> & SxProp From 88ffc0d20eb26ddc93a97f2eb2f5ac19c257b1a2 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 23 Jan 2025 17:26:35 -0500 Subject: [PATCH 28/28] Update Dialog.docs.json (#5574) --- packages/react/src/Dialog/Dialog.docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/Dialog/Dialog.docs.json b/packages/react/src/Dialog/Dialog.docs.json index fe93cc281b1..9d4f4e69b0a 100644 --- a/packages/react/src/Dialog/Dialog.docs.json +++ b/packages/react/src/Dialog/Dialog.docs.json @@ -36,7 +36,7 @@ "id": "components-dialog-features--retains-focus-trap-with-dynamic-content" } ], - "importPath": "@primer/react/experimental", + "importPath": "@primer/react", "props": [ { "name": "title",