diff --git a/.changeset/nervous-keys-draw.md b/.changeset/nervous-keys-draw.md
new file mode 100644
index 00000000000..e5e39d4f01b
--- /dev/null
+++ b/.changeset/nervous-keys-draw.md
@@ -0,0 +1,7 @@
+---
+"@primer/react": major
+---
+
+Convert @primer/react to ESM and no longer generate CommonJS bundle.
+
+
diff --git a/.eslintrc.js b/.eslintrc.cjs
similarity index 100%
rename from .eslintrc.js
rename to .eslintrc.cjs
diff --git a/babel-defines.js b/babel-defines.cjs
similarity index 100%
rename from babel-defines.js
rename to babel-defines.cjs
diff --git a/babel.config.js b/babel.config.cjs
similarity index 95%
rename from babel.config.js
rename to babel.config.cjs
index aff41bc900c..27ae2ea50ea 100644
--- a/babel.config.js
+++ b/babel.config.cjs
@@ -1,4 +1,4 @@
-const defines = require('./babel-defines')
+const defines = require('./babel-defines.cjs')
function replacementPlugin(env) {
return ['babel-plugin-transform-replace-expressions', {replace: defines[env]}]
diff --git a/docs/gatsby-node.js b/docs/gatsby-node.js
index e02b8640798..08ea5daf81b 100644
--- a/docs/gatsby-node.js
+++ b/docs/gatsby-node.js
@@ -1,4 +1,4 @@
-const defines = require('../babel-defines')
+const defines = require('../babel-defines.cjs')
const docgen = require('react-docgen-typescript')
const globby = require('globby')
diff --git a/docs/package-lock.json b/docs/package-lock.json
index 5e6e06d6cdb..6b6c5dfb4b4 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -18,6 +18,7 @@
"gatsby-plugin-alias-imports": "^1.0.5",
"gatsby-plugin-typescript": "2.10.0",
"graphql": "^15.8.0",
+ "path": "^0.12.7",
"prop-types": "^15.7.2",
"react": "^18.2.0",
"react-docgen-typescript": "^2.0.0",
@@ -4848,36 +4849,6 @@
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
"integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
},
- "node_modules/babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "eslint": ">= 4.12.1"
- }
- },
- "node_modules/babel-eslint/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/babel-jest": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
@@ -18409,6 +18380,15 @@
"cross-spawn": "^6.0.5"
}
},
+ "node_modules/path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
+ "dependencies": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
"node_modules/path-browserify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
@@ -19541,6 +19521,14 @@
"node": ">=6"
}
},
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -23959,19 +23947,6 @@
"is-typedarray": "^1.0.0"
}
},
- "node_modules/typescript": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
- "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/unbox-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -24753,6 +24728,14 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
+ "node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -24773,6 +24756,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/util/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
"node_modules/utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
@@ -27486,8 +27474,7 @@
"ws": {
"version": "7.4.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
- "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
- "requires": {}
+ "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g=="
}
}
},
@@ -27906,8 +27893,7 @@
"@mdx-js/react": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz",
- "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
- "requires": {}
+ "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg=="
},
"@mdx-js/util": {
"version": "1.6.22",
@@ -28121,8 +28107,7 @@
"@primer/octicons-react": {
"version": "17.7.0",
"resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-17.7.0.tgz",
- "integrity": "sha512-rxJiArra+q7lorhzQH223btMcRR8di9TUei9DhQG18jmVEI+wQTY+MypI5FZqU8UyehBOtcnD4TWx+i4Zwpz5Q==",
- "requires": {}
+ "integrity": "sha512-rxJiArra+q7lorhzQH223btMcRR8di9TUei9DhQG18jmVEI+wQTY+MypI5FZqU8UyehBOtcnD4TWx+i4Zwpz5Q=="
},
"@primer/primitives": {
"version": "4.1.0",
@@ -28157,8 +28142,7 @@
"@primer/octicons-react": {
"version": "16.1.1",
"resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-16.1.1.tgz",
- "integrity": "sha512-xCxQ5z23ol7yDuJs85Lc4ARzyoay+b3zOhAKkEMU7chk0xi2hT2OnRP23QUudNNDPTGozX268RGYLexUa6P4xw==",
- "requires": {}
+ "integrity": "sha512-xCxQ5z23ol7yDuJs85Lc4ARzyoay+b3zOhAKkEMU7chk0xi2hT2OnRP23QUudNNDPTGozX268RGYLexUa6P4xw=="
},
"@primer/primitives": {
"version": "7.6.0",
@@ -28170,8 +28154,7 @@
"@radix-ui/react-polymorphic": {
"version": "0.0.14",
"resolved": "https://registry.npmjs.org/@radix-ui/react-polymorphic/-/react-polymorphic-0.0.14.tgz",
- "integrity": "sha512-9nsMZEDU3LeIUeHJrpkkhZVxu/9Fc7P2g2I3WR+uA9mTbNC3hGaabi0dV6wg0CfHb+m4nSs1pejbE/5no3MJTA==",
- "requires": {}
+ "integrity": "sha512-9nsMZEDU3LeIUeHJrpkkhZVxu/9Fc7P2g2I3WR+uA9mTbNC3hGaabi0dV6wg0CfHb+m4nSs1pejbE/5no3MJTA=="
},
"@react-aria/ssr": {
"version": "3.1.0",
@@ -29305,8 +29288,7 @@
"acorn-jsx": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
- "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
- "requires": {}
+ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng=="
},
"acorn-walk": {
"version": "6.2.0",
@@ -29341,14 +29323,12 @@
"ajv-errors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
- "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
- "requires": {}
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
},
"ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "requires": {}
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"alphanum-sort": {
"version": "1.0.2",
@@ -29704,28 +29684,6 @@
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
"integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
},
- "babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "peer": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "peer": true
- }
- }
- },
"babel-jest": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
@@ -29897,8 +29855,7 @@
"babel-plugin-remove-graphql-queries": {
"version": "2.16.1",
"resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.16.1.tgz",
- "integrity": "sha512-PkHJuRodMp4p617a/ZVhV8elBhRoFpOTpdu2DaApXJFIsDJWhjZ8d4BGbbFCT/yKJrhRDTdqg1r5AhWEaEUKkw==",
- "requires": {}
+ "integrity": "sha512-PkHJuRodMp4p617a/ZVhV8elBhRoFpOTpdu2DaApXJFIsDJWhjZ8d4BGbbFCT/yKJrhRDTdqg1r5AhWEaEUKkw=="
},
"babel-plugin-styled-components": {
"version": "2.0.2",
@@ -31831,8 +31788,7 @@
"cssnano-utils": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz",
- "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==",
- "requires": {}
+ "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ=="
},
"csso": {
"version": "4.2.0",
@@ -32463,8 +32419,7 @@
"ws": {
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "requires": {}
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
}
}
},
@@ -32488,8 +32443,7 @@
"ws": {
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "requires": {}
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
}
}
},
@@ -33211,8 +33165,7 @@
"eslint-plugin-react-hooks": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz",
- "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
- "requires": {}
+ "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ=="
},
"eslint-scope": {
"version": "5.1.1",
@@ -34512,8 +34465,7 @@
"babel-plugin-remove-graphql-queries": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.7.1.tgz",
- "integrity": "sha512-9fANNkzCZJ0i65FXGnoeg/knDPC3riazCDyRrcH/2DVovxChAMSN2mqh/7eohJ8IrB/0e6cwLO4VirqanSk1Hw==",
- "requires": {}
+ "integrity": "sha512-9fANNkzCZJ0i65FXGnoeg/knDPC3riazCDyRrcH/2DVovxChAMSN2mqh/7eohJ8IrB/0e6cwLO4VirqanSk1Hw=="
},
"braces": {
"version": "3.0.2",
@@ -35886,8 +35838,7 @@
"ws": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
- "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==",
- "requires": {}
+ "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw=="
}
}
},
@@ -36347,14 +36298,12 @@
"graphql-type-json": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz",
- "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==",
- "requires": {}
+ "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg=="
},
"graphql-ws": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz",
- "integrity": "sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==",
- "requires": {}
+ "integrity": "sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag=="
},
"gray-matter": {
"version": "4.0.3",
@@ -36883,8 +36832,7 @@
"icss-utils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "requires": {}
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="
},
"ieee754": {
"version": "1.2.1",
@@ -37630,8 +37578,7 @@
"isomorphic-ws": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
- "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
- "requires": {}
+ "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="
},
"isstream": {
"version": "0.1.2",
@@ -38056,8 +38003,7 @@
"jest-pnp-resolver": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "requires": {}
+ "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w=="
},
"jest-regex-util": {
"version": "24.9.0",
@@ -39126,8 +39072,7 @@
"meros": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz",
- "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==",
- "requires": {}
+ "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ=="
},
"methods": {
"version": "1.1.2",
@@ -40155,6 +40100,15 @@
"cross-spawn": "^6.0.5"
}
},
+ "path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
+ "requires": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
"path-browserify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
@@ -40431,32 +40385,27 @@
"postcss-discard-comments": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz",
- "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==",
- "requires": {}
+ "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg=="
},
"postcss-discard-duplicates": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz",
- "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==",
- "requires": {}
+ "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA=="
},
"postcss-discard-empty": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz",
- "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==",
- "requires": {}
+ "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw=="
},
"postcss-discard-overridden": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz",
- "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==",
- "requires": {}
+ "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q=="
},
"postcss-flexbugs-fixes": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
- "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
- "requires": {}
+ "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ=="
},
"postcss-loader": {
"version": "5.3.0",
@@ -40582,8 +40531,7 @@
"postcss-modules-extract-imports": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
- "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "requires": {}
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw=="
},
"postcss-modules-local-by-default": {
"version": "4.0.0",
@@ -40621,8 +40569,7 @@
"postcss-normalize-charset": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz",
- "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==",
- "requires": {}
+ "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg=="
},
"postcss-normalize-display-values": {
"version": "5.0.1",
@@ -40993,14 +40940,18 @@
"prism-react-renderer": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz",
- "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==",
- "requires": {}
+ "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg=="
},
"prismjs": {
"version": "1.28.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz",
"integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw=="
},
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
+ },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -41378,8 +41329,7 @@
"react-docgen-typescript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.0.0.tgz",
- "integrity": "sha512-lPf+KJKAo6a9klKyK4y8WwgaX+6t5/HkVjHOpJDMbmaXfXcV7zP0QgWtnEOc3ccEUXKvlHMGUMIS9f6Zgo1BSw==",
- "requires": {}
+ "integrity": "sha512-lPf+KJKAo6a9klKyK4y8WwgaX+6t5/HkVjHOpJDMbmaXfXcV7zP0QgWtnEOc3ccEUXKvlHMGUMIS9f6Zgo1BSw=="
},
"react-dom": {
"version": "18.2.0",
@@ -41551,14 +41501,12 @@
"react-side-effect": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz",
- "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==",
- "requires": {}
+ "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ=="
},
"react-simple-code-editor": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.11.0.tgz",
- "integrity": "sha512-xGfX7wAzspl113ocfKQAR8lWPhavGWHL3xSzNLeseDRHysT+jzRBi/ExdUqevSMos+7ZtdfeuBOXtgk9HTwsrw==",
- "requires": {}
+ "integrity": "sha512-xGfX7wAzspl113ocfKQAR8lWPhavGWHL3xSzNLeseDRHysT+jzRBi/ExdUqevSMos+7ZtdfeuBOXtgk9HTwsrw=="
},
"react-style-singleton": {
"version": "2.1.1",
@@ -43739,8 +43687,7 @@
"stylis-rule-sheet": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
- "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
- "requires": {}
+ "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw=="
},
"subscriptions-transport-ws": {
"version": "0.9.19",
@@ -44436,12 +44383,6 @@
"is-typedarray": "^1.0.0"
}
},
- "typescript": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
- "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
- "peer": true
- },
"unbox-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -44975,8 +44916,7 @@
"use-callback-ref": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz",
- "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==",
- "requires": {}
+ "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg=="
},
"use-sidecar": {
"version": "1.0.5",
@@ -44994,6 +44934,21 @@
}
}
},
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "requires": {
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ }
+ }
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/docs/package.json b/docs/package.json
index c93543a650a..a7e37f4d1b8 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -23,6 +23,7 @@
"gatsby-plugin-alias-imports": "^1.0.5",
"gatsby-plugin-typescript": "2.10.0",
"graphql": "^15.8.0",
+ "path": "^0.12.7",
"prop-types": "^15.7.2",
"react": "^18.2.0",
"react-docgen-typescript": "^2.0.0",
diff --git a/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js b/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js
index 894ffda8652..ec201486757 100644
--- a/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js
+++ b/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js
@@ -1,8 +1,6 @@
import {Box, Link} from '@primer/react'
import InlineCode from '@primer/gatsby-theme-doctocat/src/components/inline-code'
import {ComponentChecklist} from '../../component-checklist'
-// eslint-disable-next-line import/no-deprecated
-import {Props} from '../../props'
import {PropsTable} from '../../props-table'
import {ComponentProps} from '../../component-props'
@@ -11,8 +9,6 @@ export default {
Link,
InlineCode,
ComponentChecklist,
- // eslint-disable-next-line import/no-deprecated
- Props,
PropsTable,
ComponentProps,
// HACK: MDX doesn't support rendering subcomponents with dot notation
diff --git a/docs/src/props.js b/docs/src/props.js
deleted file mode 100644
index 04b9bf73ede..00000000000
--- a/docs/src/props.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import {H3} from '@primer/gatsby-theme-doctocat/src/components/heading'
-import Paragraph from '@primer/gatsby-theme-doctocat/src/components/paragraph'
-import {Flash} from '@primer/react'
-import {graphql, useStaticQuery} from 'gatsby'
-import React from 'react'
-import {PropsTable} from './props-table'
-
-/**
- * Render prop documentation for the given component
- *
- * @deprecated This component does not reliably generate the correct prop types. Use `ComponentProps` instead.
- */
-export function Props({of}) {
- const data = useStaticQuery(graphql`
- query {
- allComponentMetadata {
- nodes {
- id
- name
- props {
- description
- defaultValue
- name
- required
- type
- }
- }
- }
- }
- `)
-
- const displayName = of?.displayName || of?.name || ''
- const component = data.allComponentMetadata.nodes.find(node => node.name === displayName)
-
- if (!component) {
- // eslint-disable-next-line no-console
- console.error(`Could not find component ${displayName}`)
- return (
- <>
-
{displayName}
- Component not found
- >
- )
- }
-
- return (
- <>
- {component.name}
- {component.props.length > 0 ? (
-
- {component.props.map(prop => (
-
- ))}
-
- ) : (
- No props
- )}
- >
- )
-}
diff --git a/e2e/components/ActionList.test.ts b/e2e/components/ActionList.test.ts
index fac59e41cc7..709af8cf08e 100644
--- a/e2e/components/ActionList.test.ts
+++ b/e2e/components/ActionList.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('ActionList', () => {
test.describe('Default', () => {
diff --git a/e2e/components/ActionMenu.test.ts b/e2e/components/ActionMenu.test.ts
index dddbaee08f5..72e76b32729 100644
--- a/e2e/components/ActionMenu.test.ts
+++ b/e2e/components/ActionMenu.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('ActionMenu', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Avatar.test.ts b/e2e/components/Avatar.test.ts
index dab9f9de809..a81e02f088b 100644
--- a/e2e/components/Avatar.test.ts
+++ b/e2e/components/Avatar.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Avatar', () => {
test.describe('Default', () => {
diff --git a/e2e/components/AvatarPair.test.ts b/e2e/components/AvatarPair.test.ts
index d55159279d6..be9ea2777f4 100644
--- a/e2e/components/AvatarPair.test.ts
+++ b/e2e/components/AvatarPair.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('AvatarPair', () => {
test.describe('Default', () => {
diff --git a/e2e/components/AvatarStack.test.ts b/e2e/components/AvatarStack.test.ts
index 4d814a808bf..968fe6f9925 100644
--- a/e2e/components/AvatarStack.test.ts
+++ b/e2e/components/AvatarStack.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('AvatarStack', () => {
test.describe('Default', () => {
diff --git a/e2e/components/BranchName.test.ts b/e2e/components/BranchName.test.ts
index ecf450d8968..371c9a68090 100644
--- a/e2e/components/BranchName.test.ts
+++ b/e2e/components/BranchName.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('BranchName', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Breadcrumbs.test.ts b/e2e/components/Breadcrumbs.test.ts
index 5b4a763084e..18c47a6b302 100644
--- a/e2e/components/Breadcrumbs.test.ts
+++ b/e2e/components/Breadcrumbs.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Breadcrumbs', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Button.test.ts b/e2e/components/Button.test.ts
index d9a4755ab1a..ba8333fe832 100644
--- a/e2e/components/Button.test.ts
+++ b/e2e/components/Button.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Button', () => {
test.describe('Playground', () => {
diff --git a/e2e/components/ButtonGroup.test.ts b/e2e/components/ButtonGroup.test.ts
index c3ca9822ff7..2e659555f53 100644
--- a/e2e/components/ButtonGroup.test.ts
+++ b/e2e/components/ButtonGroup.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('ButtonGroup', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Checkbox.test.ts b/e2e/components/Checkbox.test.ts
index 7337127cfb1..76bdf20b58a 100644
--- a/e2e/components/Checkbox.test.ts
+++ b/e2e/components/Checkbox.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Checkbox', () => {
test.describe('Default', () => {
diff --git a/e2e/components/CheckboxGroup.test.ts b/e2e/components/CheckboxGroup.test.ts
index 45697bbeba5..f7d3c0fcda5 100644
--- a/e2e/components/CheckboxGroup.test.ts
+++ b/e2e/components/CheckboxGroup.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('CheckboxGroup', () => {
test.describe('Default', () => {
diff --git a/e2e/components/CircleBadge.test.ts b/e2e/components/CircleBadge.test.ts
index d31b82da2c4..79ebc7f3179 100644
--- a/e2e/components/CircleBadge.test.ts
+++ b/e2e/components/CircleBadge.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('CircleBadge', () => {
test.describe('Default', () => {
diff --git a/e2e/components/CircleOcticon.test.ts b/e2e/components/CircleOcticon.test.ts
index 6109f6105b9..97d479e2145 100644
--- a/e2e/components/CircleOcticon.test.ts
+++ b/e2e/components/CircleOcticon.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('CircleOcticon', () => {
test.describe('Default', () => {
diff --git a/e2e/components/CounterLabel.test.ts b/e2e/components/CounterLabel.test.ts
index f2ca4e8ad71..3bd900edf34 100644
--- a/e2e/components/CounterLabel.test.ts
+++ b/e2e/components/CounterLabel.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('CounterLabel', () => {
test.describe('Default', () => {
diff --git a/e2e/components/DataTable.test.ts b/e2e/components/DataTable.test.ts
index 3ef3925d5b2..7b81a340b73 100644
--- a/e2e/components/DataTable.test.ts
+++ b/e2e/components/DataTable.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('DataTable', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Details.test.ts b/e2e/components/Details.test.ts
index 4f51edaeb18..7b95aa49a2a 100644
--- a/e2e/components/Details.test.ts
+++ b/e2e/components/Details.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Details', () => {
test.describe('Default', () => {
diff --git a/e2e/components/FilterList.test.ts b/e2e/components/FilterList.test.ts
index b2aaa6493b0..fa63ed88f35 100644
--- a/e2e/components/FilterList.test.ts
+++ b/e2e/components/FilterList.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('FilterList', () => {
test.describe('Default', () => {
diff --git a/e2e/components/FilteredSearch.test.ts b/e2e/components/FilteredSearch.test.ts
index 5b213d7dcac..f7593b23c19 100644
--- a/e2e/components/FilteredSearch.test.ts
+++ b/e2e/components/FilteredSearch.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('FilteredSearch', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Flash.test.ts b/e2e/components/Flash.test.ts
index 2711fbff85b..056537a2dee 100644
--- a/e2e/components/Flash.test.ts
+++ b/e2e/components/Flash.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Flash', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Header.test.ts b/e2e/components/Header.test.ts
index 9120f70d731..224aabaad1e 100644
--- a/e2e/components/Header.test.ts
+++ b/e2e/components/Header.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Header', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Heading.test.ts b/e2e/components/Heading.test.ts
index 1c573a8b6e7..af99c123a95 100644
--- a/e2e/components/Heading.test.ts
+++ b/e2e/components/Heading.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Heading', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Hidden.test.ts b/e2e/components/Hidden.test.ts
index 3bc87d1cd3e..cb59406bf2d 100644
--- a/e2e/components/Hidden.test.ts
+++ b/e2e/components/Hidden.test.ts
@@ -1,7 +1,7 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
-import {viewports} from '../test-helpers/viewports'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
+import {viewports} from '../test-helpers/viewports.js'
test.describe('Hidden', () => {
test.describe('Default', () => {
diff --git a/e2e/components/IconButton.test.ts b/e2e/components/IconButton.test.ts
index 8b1e3aac1e6..da03fe08801 100644
--- a/e2e/components/IconButton.test.ts
+++ b/e2e/components/IconButton.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('IconButton', () => {
test.describe('Playground', () => {
diff --git a/e2e/components/InlineAutocomplete.test.ts b/e2e/components/InlineAutocomplete.test.ts
index 19492e39cc3..a9643a6b863 100644
--- a/e2e/components/InlineAutocomplete.test.ts
+++ b/e2e/components/InlineAutocomplete.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('InlineAutocomplete', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Label.test.ts b/e2e/components/Label.test.ts
index b28b9f7fffb..0aadf137cf5 100644
--- a/e2e/components/Label.test.ts
+++ b/e2e/components/Label.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Label', () => {
test.describe('Default', () => {
diff --git a/e2e/components/LabelGroup.test.ts b/e2e/components/LabelGroup.test.ts
index b4e48650df7..b65397feca2 100644
--- a/e2e/components/LabelGroup.test.ts
+++ b/e2e/components/LabelGroup.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('LabelGroup', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Link.test.ts b/e2e/components/Link.test.ts
index 75259a13e91..ab69f72bdea 100644
--- a/e2e/components/Link.test.ts
+++ b/e2e/components/Link.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Link', () => {
test.describe('Default', () => {
diff --git a/e2e/components/LinkButton.test.ts b/e2e/components/LinkButton.test.ts
index 98a92c22704..af9b148ea83 100644
--- a/e2e/components/LinkButton.test.ts
+++ b/e2e/components/LinkButton.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('LinkButton', () => {
test.describe('Playground', () => {
diff --git a/e2e/components/PageHeader.test.ts b/e2e/components/PageHeader.test.ts
index e19dddf0b30..aa2c1a5d8e6 100644
--- a/e2e/components/PageHeader.test.ts
+++ b/e2e/components/PageHeader.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
// TODO: remove the color contrast rule once the constract issue is fixed
test.describe('PageHeader', () => {
diff --git a/e2e/components/PageLayout.test.ts b/e2e/components/PageLayout.test.ts
index a2475290fe0..2a2662f535b 100644
--- a/e2e/components/PageLayout.test.ts
+++ b/e2e/components/PageLayout.test.ts
@@ -1,7 +1,7 @@
import {test, expect} from '@playwright/test'
import type {Page} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
const isInViewPort = (page: Page, boundingBox: {x: number; y: number; width: number; height: number}) => {
let width
diff --git a/e2e/components/Pagehead.test.ts b/e2e/components/Pagehead.test.ts
index 00f077d663b..f77ba16cd88 100644
--- a/e2e/components/Pagehead.test.ts
+++ b/e2e/components/Pagehead.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Pagehead', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Popover.test.ts b/e2e/components/Popover.test.ts
index 7a80f28cda4..e458287f6b6 100644
--- a/e2e/components/Popover.test.ts
+++ b/e2e/components/Popover.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Popover', () => {
test.describe('Default', () => {
diff --git a/e2e/components/ProgressBar.test.ts b/e2e/components/ProgressBar.test.ts
index ac87493b2a1..3f9f9cd2900 100644
--- a/e2e/components/ProgressBar.test.ts
+++ b/e2e/components/ProgressBar.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('ProgressBar', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Radio.test.ts b/e2e/components/Radio.test.ts
index 8c96c9ca923..c6eebe6aa25 100644
--- a/e2e/components/Radio.test.ts
+++ b/e2e/components/Radio.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Radio', () => {
test.describe('Default', () => {
diff --git a/e2e/components/RadioGroup.test.ts b/e2e/components/RadioGroup.test.ts
index 59512a41e98..d4c84151cf3 100644
--- a/e2e/components/RadioGroup.test.ts
+++ b/e2e/components/RadioGroup.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('RadioGroup', () => {
test.describe('Default', () => {
diff --git a/e2e/components/SegmentedControl.test.ts b/e2e/components/SegmentedControl.test.ts
index 5868244d96f..849c130b1c6 100644
--- a/e2e/components/SegmentedControl.test.ts
+++ b/e2e/components/SegmentedControl.test.ts
@@ -1,7 +1,7 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
-import {viewports} from '../test-helpers/viewports'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
+import {viewports} from '../test-helpers/viewports.js'
test.describe('SegmentedControl', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Select.test.ts b/e2e/components/Select.test.ts
index 0fa7576e1d7..357a0b956b0 100644
--- a/e2e/components/Select.test.ts
+++ b/e2e/components/Select.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Select', () => {
test.describe('Default', () => {
diff --git a/e2e/components/SelectPanel.test.ts b/e2e/components/SelectPanel.test.ts
index 8db0ed311f3..3d91dfc2d5a 100644
--- a/e2e/components/SelectPanel.test.ts
+++ b/e2e/components/SelectPanel.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('SelectPanel', () => {
test.describe('Default', () => {
diff --git a/e2e/components/StateLabel.test.ts b/e2e/components/StateLabel.test.ts
index add2a97d42e..d73078bcfd3 100644
--- a/e2e/components/StateLabel.test.ts
+++ b/e2e/components/StateLabel.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('StateLabel', () => {
test.describe('Draft', () => {
diff --git a/e2e/components/StyledOcticon.test.ts b/e2e/components/StyledOcticon.test.ts
index 39f22747c15..578afe55dda 100644
--- a/e2e/components/StyledOcticon.test.ts
+++ b/e2e/components/StyledOcticon.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('StyledOcticon', () => {
test.describe('Default', () => {
diff --git a/e2e/components/TabNav.test.ts b/e2e/components/TabNav.test.ts
index a896f2f1808..11578689af6 100644
--- a/e2e/components/TabNav.test.ts
+++ b/e2e/components/TabNav.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('TabNav', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Text.test.ts b/e2e/components/Text.test.ts
index 952eb5f17bf..a7413a7689f 100644
--- a/e2e/components/Text.test.ts
+++ b/e2e/components/Text.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Text', () => {
test.describe('Default', () => {
diff --git a/e2e/components/TextInput.test.ts b/e2e/components/TextInput.test.ts
index dc1af6c6551..0bf251661a6 100644
--- a/e2e/components/TextInput.test.ts
+++ b/e2e/components/TextInput.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('TextInput', () => {
test.describe('Default', () => {
diff --git a/e2e/components/TextInputWithTokens.test.ts b/e2e/components/TextInputWithTokens.test.ts
index a08368328b9..a8bfd96e1ca 100644
--- a/e2e/components/TextInputWithTokens.test.ts
+++ b/e2e/components/TextInputWithTokens.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('TextInputWithTokens', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Textarea.test.ts b/e2e/components/Textarea.test.ts
index 6df9ca2792e..2170cf12002 100644
--- a/e2e/components/Textarea.test.ts
+++ b/e2e/components/Textarea.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Textarea', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Timeline.test.ts b/e2e/components/Timeline.test.ts
index ceba14c85ec..1da4a47a9d7 100644
--- a/e2e/components/Timeline.test.ts
+++ b/e2e/components/Timeline.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Timeline', () => {
test.describe('Default', () => {
diff --git a/e2e/components/ToggleSwitch.test.ts b/e2e/components/ToggleSwitch.test.ts
index 33ed880d336..408bfe7a23e 100644
--- a/e2e/components/ToggleSwitch.test.ts
+++ b/e2e/components/ToggleSwitch.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('ToggleSwitch', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Token.test.ts b/e2e/components/Token.test.ts
index 87f0d422e7d..ae57fb31598 100644
--- a/e2e/components/Token.test.ts
+++ b/e2e/components/Token.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Token', () => {
test.describe('Default', () => {
diff --git a/e2e/components/TreeView.test.ts b/e2e/components/TreeView.test.ts
index 1f665117e85..d5a9335d14c 100644
--- a/e2e/components/TreeView.test.ts
+++ b/e2e/components/TreeView.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('TreeView', () => {
test.describe('Default', () => {
diff --git a/e2e/components/Truncate.test.ts b/e2e/components/Truncate.test.ts
index fcf8073027b..f27a08a4ea4 100644
--- a/e2e/components/Truncate.test.ts
+++ b/e2e/components/Truncate.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('Truncate', () => {
test.describe('Default', () => {
diff --git a/e2e/components/UnderlineNav--deprecated.test.ts b/e2e/components/UnderlineNav--deprecated.test.ts
index c0518ec495e..40f545b2e06 100644
--- a/e2e/components/UnderlineNav--deprecated.test.ts
+++ b/e2e/components/UnderlineNav--deprecated.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('UnderlineNav--deprecated', () => {
test.describe('Default', () => {
diff --git a/e2e/components/UnderlineNav.test.ts b/e2e/components/UnderlineNav.test.ts
index 341bae11433..297303a0d00 100644
--- a/e2e/components/UnderlineNav.test.ts
+++ b/e2e/components/UnderlineNav.test.ts
@@ -1,7 +1,7 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
-import {viewports} from '../test-helpers/viewports'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
+import {viewports} from '../test-helpers/viewports.js'
test.describe('UnderlineNav', () => {
test.describe('Profile Page', () => {
diff --git a/e2e/components/drafts/Button2.test.ts b/e2e/components/drafts/Button2.test.ts
index 5e2f140937e..2657bf65ec0 100644
--- a/e2e/components/drafts/Button2.test.ts
+++ b/e2e/components/drafts/Button2.test.ts
@@ -1,6 +1,6 @@
import {test, expect} from '@playwright/test'
-import {visit} from '../../test-helpers/storybook'
-import {themes} from '../../test-helpers/themes'
+import {visit} from '../../test-helpers/storybook.js'
+import {themes} from '../../test-helpers/themes.js'
test.describe('Button', () => {
test.describe('Playground', () => {
diff --git a/e2e/matchers/toHaveNoViolations.ts b/e2e/matchers/toHaveNoViolations.ts
index 32349cddd5d..01b30d48766 100644
--- a/e2e/matchers/toHaveNoViolations.ts
+++ b/e2e/matchers/toHaveNoViolations.ts
@@ -1,8 +1,11 @@
import {Page, expect, test} from '@playwright/test'
-import {AxeResults, source} from 'axe-core'
+import axe from 'axe-core'
+import type {AxeResults} from 'axe-core'
import path from 'node:path'
import fs from 'node:fs'
+const {source} = axe
+
const defaultOptions = {
rules: {
'document-title': {
diff --git a/e2e/test-helpers/storybook.ts b/e2e/test-helpers/storybook.ts
index 755e8848b12..fa72ec2c16e 100644
--- a/e2e/test-helpers/storybook.ts
+++ b/e2e/test-helpers/storybook.ts
@@ -1,5 +1,5 @@
import {Page} from '@playwright/test'
-import {waitForImages} from './waitForImages'
+import {waitForImages} from './waitForImages.js'
interface Options {
id: string
diff --git a/examples/nextjs/package-lock.json b/examples/nextjs/package-lock.json
index fd949fcbbd7..57335ebd557 100644
--- a/examples/nextjs/package-lock.json
+++ b/examples/nextjs/package-lock.json
@@ -18,34 +18,36 @@
},
"../..": {
"name": "@primer/react",
- "version": "35.26.0",
+ "version": "35.26.1",
"license": "MIT",
"dependencies": {
"@github/combobox-nav": "^2.1.5",
"@github/markdown-toolbar-element": "^2.1.0",
"@github/paste-markdown": "^1.4.0",
"@github/relative-time-element": "^4.1.2",
- "@lit-labs/react": "1.1.1",
- "@primer/behaviors": "1.3.4",
- "@primer/octicons-react": "18.3.0",
- "@primer/primitives": "7.11.11",
+ "@lit-labs/react": "^1.1.1",
+ "@primer/behaviors": "^1.3.4",
+ "@primer/octicons-react": "^19.3.0",
+ "@primer/primitives": "^7.11.11",
"@react-aria/ssr": "^3.1.0",
"@styled-system/css": "^5.1.5",
"@styled-system/props": "^5.1.5",
"@styled-system/theme-get": "^5.1.2",
- "@types/styled-components": "^5.1.11",
+ "@types/react-is": "^18.2.1",
"@types/styled-system": "^5.1.12",
"@types/styled-system__css": "^5.0.16",
"@types/styled-system__theme-get": "^5.0.1",
- "classnames": "^2.3.1",
+ "clsx": "^1.2.1",
"color2k": "^2.0.0",
"deepmerge": "^4.2.2",
"focus-visible": "^5.2.0",
- "fzy.js": "0.4.1",
+ "fzy.js": "^0.4.1",
"history": "^5.0.0",
- "lodash.isempty": "4.4.0",
- "lodash.isobject": "3.0.2",
- "react-intersection-observer": "9.4.3",
+ "lodash.isempty": "^4.4.0",
+ "lodash.isobject": "^3.0.2",
+ "react-intersection-observer": "^9.4.3",
+ "react-is": "^18.2.0",
+ "react-markdown": "8.0.7",
"styled-system": "^5.1.5"
},
"devDependencies": {
@@ -59,7 +61,6 @@
"@babel/preset-react": "7.18.6",
"@babel/preset-typescript": "7.21.5",
"@changesets/changelog-github": "0.4.8",
- "@changesets/cli": "2.26.0",
"@github/markdownlint-github": "^0.3.0",
"@github/prettier-config": "0.0.6",
"@playwright/test": "1.32.0",
@@ -74,31 +75,32 @@
"@size-limit/preset-big-lib": "8.2.4",
"@storybook/addon-a11y": "7.0.12",
"@storybook/addon-actions": "7.0.12",
- "@storybook/addon-essentials": "7.0.22",
- "@storybook/addon-interactions": "7.0.12",
+ "@storybook/addon-essentials": "7.0.24",
+ "@storybook/addon-interactions": "7.0.26",
"@storybook/addon-links": "7.0.12",
"@storybook/addon-storysource": "7.0.12",
"@storybook/csf": "0.1.0",
"@storybook/jest": "0.1.0",
- "@storybook/react": "7.0.12",
+ "@storybook/react": "7.0.23",
"@storybook/react-webpack5": "7.0.12",
"@storybook/test-runner": "0.10.0",
"@storybook/testing-library": "0.1.0",
- "@storybook/theming": "7.0.12",
+ "@storybook/theming": "7.0.26",
"@testing-library/dom": "9.2.0",
"@testing-library/jest-dom": "5.16.5",
"@testing-library/react": "14.0.0",
"@testing-library/react-hooks": "7.0.2",
"@testing-library/user-event": "^14.3.0",
- "@types/jest": "29.4.0",
+ "@types/jest": "29.5.2",
"@types/jest-axe": "3.5.5",
"@types/lodash.groupby": "4.6.7",
"@types/lodash.isempty": "4.4.7",
"@types/lodash.isobject": "3.0.7",
"@types/lodash.keyby": "4.6.7",
- "@types/node": "16.11.11",
+ "@types/node": "18.16.19",
"@types/react": "18.0.28",
"@types/react-dom": "18.2.6",
+ "@types/styled-components": "^5.1.11",
"@typescript-eslint/eslint-plugin": "5.59.6",
"@typescript-eslint/parser": "5.59.6",
"ajv": "8.12.0",
@@ -118,25 +120,25 @@
"copyfiles": "2.4.1",
"cross-env": "7.0.3",
"eslint": "8.40.0",
- "eslint-import-resolver-typescript": "3.5.3",
- "eslint-plugin-github": "4.6.1",
+ "eslint-import-resolver-typescript": "3.5.5",
+ "eslint-plugin-github": "4.8.0",
"eslint-plugin-jest": "27.2.1",
"eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-mdx": "2.0.5",
- "eslint-plugin-playwright": "0.12.0",
+ "eslint-plugin-playwright": "0.15.1",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-primer-react": "2.0.3",
"eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-ssr-friendly": "1.2.0",
"eslint-plugin-storybook": "0.6.12",
- "eslint-plugin-testing-library": "5.10.2",
+ "eslint-plugin-testing-library": "5.11.0",
"fast-glob": "3.2.12",
"filesize": "10.0.6",
"front-matter": "4.0.2",
"gzip-size": "6.0.0",
"husky": "8.0.2",
- "jest": "29.4.2",
+ "jest": "29.5.0",
"jest-axe": "7.0.1",
"jest-css-modules": "2.1.0",
"jest-environment-jsdom": "29.4.3",
@@ -154,10 +156,11 @@
"mdast-util-frontmatter": "1.0.1",
"mdast-util-mdx": "2.0.1",
"mdast-util-to-string": "3.1.1",
- "micromark-extension-frontmatter": "1.0.0",
+ "micromark-extension-frontmatter": "2.0.0",
"micromark-extension-mdxjs": "1.0.1",
"postcss-custom-properties-fallback": "^1.0.2",
"prettier": "2.8.8",
+ "primer-changesets-cli": "2.2.1",
"react": "18.2.0",
"react-dnd": "14.0.4",
"react-dnd-html5-backend": "14.0.2",
@@ -190,9 +193,23 @@
"npm": ">=7"
},
"peerDependencies": {
- "react": "^17.0.0 || ^18.0.0",
- "react-dom": "^17.0.0 || ^18.0.0",
+ "@types/react": "^18.0.0",
+ "@types/react-dom": "^18.0.0",
+ "@types/styled-components": "^5.1.11",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
"styled-components": "4.x || 5.x"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ },
+ "@types/styled-components": {
+ "optional": true
+ }
}
},
"node_modules/@babel/code-frame": {
@@ -1385,19 +1402,18 @@
"@babel/preset-react": "7.18.6",
"@babel/preset-typescript": "7.21.5",
"@changesets/changelog-github": "0.4.8",
- "@changesets/cli": "2.26.0",
"@github/combobox-nav": "^2.1.5",
"@github/markdown-toolbar-element": "^2.1.0",
"@github/markdownlint-github": "^0.3.0",
"@github/paste-markdown": "^1.4.0",
"@github/prettier-config": "0.0.6",
"@github/relative-time-element": "^4.1.2",
- "@lit-labs/react": "1.1.1",
+ "@lit-labs/react": "^1.1.1",
"@playwright/test": "1.32.0",
- "@primer/behaviors": "1.3.4",
+ "@primer/behaviors": "^1.3.4",
"@primer/css": "^21.0.1",
- "@primer/octicons-react": "18.3.0",
- "@primer/primitives": "7.11.11",
+ "@primer/octicons-react": "^19.3.0",
+ "@primer/primitives": "^7.11.11",
"@react-aria/ssr": "^3.1.0",
"@rollup/plugin-babel": "6.0.3",
"@rollup/plugin-commonjs": "25.0.0",
@@ -1409,17 +1425,17 @@
"@size-limit/preset-big-lib": "8.2.4",
"@storybook/addon-a11y": "7.0.12",
"@storybook/addon-actions": "7.0.12",
- "@storybook/addon-essentials": "7.0.22",
- "@storybook/addon-interactions": "7.0.12",
+ "@storybook/addon-essentials": "7.0.24",
+ "@storybook/addon-interactions": "7.0.26",
"@storybook/addon-links": "7.0.12",
"@storybook/addon-storysource": "7.0.12",
"@storybook/csf": "0.1.0",
"@storybook/jest": "0.1.0",
- "@storybook/react": "7.0.12",
+ "@storybook/react": "7.0.23",
"@storybook/react-webpack5": "7.0.12",
"@storybook/test-runner": "0.10.0",
"@storybook/testing-library": "0.1.0",
- "@storybook/theming": "7.0.12",
+ "@storybook/theming": "7.0.26",
"@styled-system/css": "^5.1.5",
"@styled-system/props": "^5.1.5",
"@styled-system/theme-get": "^5.1.2",
@@ -1428,15 +1444,16 @@
"@testing-library/react": "14.0.0",
"@testing-library/react-hooks": "7.0.2",
"@testing-library/user-event": "^14.3.0",
- "@types/jest": "29.4.0",
+ "@types/jest": "29.5.2",
"@types/jest-axe": "3.5.5",
"@types/lodash.groupby": "4.6.7",
"@types/lodash.isempty": "4.4.7",
"@types/lodash.isobject": "3.0.7",
"@types/lodash.keyby": "4.6.7",
- "@types/node": "16.11.11",
+ "@types/node": "18.16.19",
"@types/react": "18.0.28",
"@types/react-dom": "18.2.6",
+ "@types/react-is": "^18.2.1",
"@types/styled-components": "^5.1.11",
"@types/styled-system": "^5.1.12",
"@types/styled-system__css": "^5.0.16",
@@ -1456,35 +1473,35 @@
"babel-polyfill": "6.26.0",
"change-case": "4.1.2",
"chromatic": "6.1.0",
- "classnames": "^2.3.1",
+ "clsx": "^1.2.1",
"color2k": "^2.0.0",
"concurrently": "8.0.1",
"copyfiles": "2.4.1",
"cross-env": "7.0.3",
"deepmerge": "^4.2.2",
"eslint": "8.40.0",
- "eslint-import-resolver-typescript": "3.5.3",
- "eslint-plugin-github": "4.6.1",
+ "eslint-import-resolver-typescript": "3.5.5",
+ "eslint-plugin-github": "4.8.0",
"eslint-plugin-jest": "27.2.1",
"eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-mdx": "2.0.5",
- "eslint-plugin-playwright": "0.12.0",
+ "eslint-plugin-playwright": "0.15.1",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-primer-react": "2.0.3",
"eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-ssr-friendly": "1.2.0",
"eslint-plugin-storybook": "0.6.12",
- "eslint-plugin-testing-library": "5.10.2",
+ "eslint-plugin-testing-library": "5.11.0",
"fast-glob": "3.2.12",
"filesize": "10.0.6",
"focus-visible": "^5.2.0",
"front-matter": "4.0.2",
- "fzy.js": "0.4.1",
+ "fzy.js": "^0.4.1",
"gzip-size": "6.0.0",
"history": "^5.0.0",
"husky": "8.0.2",
- "jest": "29.4.2",
+ "jest": "29.5.0",
"jest-axe": "7.0.1",
"jest-css-modules": "2.1.0",
"jest-environment-jsdom": "29.4.3",
@@ -1495,8 +1512,8 @@
"jscodeshift": "0.14.0",
"lint-staged": "13.2.2",
"lodash.groupby": "4.6.0",
- "lodash.isempty": "4.4.0",
- "lodash.isobject": "3.0.2",
+ "lodash.isempty": "^4.4.0",
+ "lodash.isobject": "^3.0.2",
"lodash.keyby": "4.6.0",
"markdownlint-cli2": "^0.7.1",
"markdownlint-cli2-formatter-pretty": "0.0.3",
@@ -1504,15 +1521,18 @@
"mdast-util-frontmatter": "1.0.1",
"mdast-util-mdx": "2.0.1",
"mdast-util-to-string": "3.1.1",
- "micromark-extension-frontmatter": "1.0.0",
+ "micromark-extension-frontmatter": "2.0.0",
"micromark-extension-mdxjs": "1.0.1",
"postcss-custom-properties-fallback": "^1.0.2",
"prettier": "2.8.8",
+ "primer-changesets-cli": "2.2.1",
"react": "18.2.0",
"react-dnd": "14.0.4",
"react-dnd-html5-backend": "14.0.2",
"react-dom": "18.2.0",
- "react-intersection-observer": "9.4.3",
+ "react-intersection-observer": "^9.4.3",
+ "react-is": "^18.2.0",
+ "react-markdown": "8.0.7",
"react-test-renderer": "18.2.0",
"recast": "0.22.0",
"rimraf": "4.1.2",
diff --git a/jest.config.js b/jest.config.cjs
similarity index 100%
rename from jest.config.js
rename to jest.config.cjs
diff --git a/package.json b/package.json
index 23793077881..49c4691e862 100644
--- a/package.json
+++ b/package.json
@@ -4,33 +4,16 @@
"description": "An implementation of GitHub's Primer Design System using React",
"main": "lib/index.js",
"module": "lib-esm/index.js",
+ "type": "module",
"exports": {
- ".": {
- "import": "./lib-esm/index.js",
- "require": "./lib/index.js"
- },
- "./experimental": {
- "import": "./lib-esm/experimental/index.js",
- "require": "./lib/experimental/index.js"
- },
- "./drafts": {
- "import": "./lib-esm/drafts/index.js",
- "require": "./lib/drafts/index.js"
- },
- "./deprecated": {
- "import": "./lib-esm/deprecated/index.js",
- "require": "./lib/deprecated/index.js"
- },
- "./lib-esm/*": {
- "import": [
+ ".": "./lib-esm/index.js",
+ "./experimental": "./lib-esm/experimental/index.js",
+ "./drafts": "./lib-esm/drafts/index.js",
+ "./deprecated": "./lib-esm/deprecated/index.js",
+ "./lib-esm/*": [
"./lib-esm/*.js",
"./lib-esm/*/index.js"
- ],
- "require": [
- "./lib/*.js",
- "./lib/*/index.js"
- ]
- },
+ ],
"./lib-esm/internal/*": null
},
"typings": "lib/index.d.ts",
diff --git a/playwright.config.ts b/playwright.config.ts
index 0c25b4535a1..4ab645ad207 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -1,6 +1,10 @@
import path from 'node:path'
+import {fileURLToPath} from 'url'
+import './e2e/matchers/toHaveNoViolations.js'
import {defineConfig} from '@playwright/test'
-import './e2e/matchers/toHaveNoViolations'
+
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
export default defineConfig({
// https://playwright.dev/docs/api/class-testconfig#test-config-test-dir
diff --git a/rollup.config.js b/rollup.config.mjs
similarity index 85%
rename from rollup.config.js
rename to rollup.config.mjs
index 56cca810a74..91037209d01 100644
--- a/rollup.config.js
+++ b/rollup.config.mjs
@@ -1,3 +1,5 @@
+import path from 'path'
+import {fileURLToPath} from 'url'
import commonjs from '@rollup/plugin-commonjs'
import resolve from '@rollup/plugin-node-resolve'
import babel from '@rollup/plugin-babel'
@@ -6,9 +8,12 @@ import terser from '@rollup/plugin-terser'
import glob from 'fast-glob'
import {visualizer} from 'rollup-plugin-visualizer'
import postcss from 'rollup-plugin-postcss'
-import packageJson from './package.json'
+import packageJson from './package.json' assert {type: 'json'}
import postcssCustomPropertiesFallback from 'postcss-custom-properties-fallback'
-const importedJSONFromPrimitives = require('@primer/primitives/tokens-next-private/fallbacks/color-fallbacks.json')
+import importedJSONFromPrimitives from '@primer/primitives/tokens-next-private/fallbacks/color-fallbacks.json' assert {type: 'json'}
+
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
const input = new Set([
// "exports"
@@ -56,13 +61,6 @@ const input = new Set([
])
const extensions = ['.js', '.jsx', '.ts', '.tsx']
-const ESM_ONLY = new Set([
- '@github/combobox-nav',
- '@github/markdown-toolbar-element',
- '@github/paste-markdown',
- '@github/relative-time-element',
- '@lit-labs/react',
-])
const dependencies = [
...Object.keys(packageJson.peerDependencies ?? {}),
...Object.keys(packageJson.dependencies ?? {}),
@@ -143,20 +141,6 @@ export default [
},
},
- // CommonJS
- {
- ...baseConfig,
- external: dependencies.filter(name => !ESM_ONLY.has(name)).map(createPackageRegex),
- output: {
- interop: 'auto',
- dir: 'lib',
- format: 'commonjs',
- preserveModules: true,
- preserveModulesRoot: 'src',
- exports: 'auto',
- },
- },
-
// Bundles
{
...baseConfig,
diff --git a/script/build b/script/build
index 9ab118c761e..413f3cacdc3 100755
--- a/script/build
+++ b/script/build
@@ -6,7 +6,7 @@ set -e
npm run clean
# Bundle
-npx rollup -c --bundleConfigAsCjs
+npx rollup --config
# Type check
npx tsc --project tsconfig.build.json
diff --git a/script/components-json/build.ts b/script/components-json/build.ts
index 92eb6ac2906..8278680a117 100644
--- a/script/components-json/build.ts
+++ b/script/components-json/build.ts
@@ -8,8 +8,8 @@ import glob from 'fast-glob'
import fs from 'fs'
import keyBy from 'lodash.keyby'
import prettier from 'prettier'
-import componentSchema from './component.schema.json'
-import outputSchema from './output.schema.json'
+import componentSchema from './component.schema.json' assert {type: 'json'}
+import outputSchema from './output.schema.json' assert {type: 'json'}
// Only includes fields we use in this script
type Component = {
@@ -130,7 +130,9 @@ function getStorySourceCode(filepath: string) {
const stories: Record = {}
- traverse(ast, {
+ // @ts-ignore Can't call `traverse` in ESM directly, must reference `default`.
+ traverse.default(ast, {
+ // @ts-ignore I don't know what `path` should even be here.
ExportNamedDeclaration(path) {
const varDecloration = path.node.declaration as VariableDeclaration
const id = varDecloration.declarations[0].id as Identifier
@@ -138,7 +140,8 @@ function getStorySourceCode(filepath: string) {
const func = varDecloration.declarations[0].init as ArrowFunctionExpression
const code = prettier
- .format(generate(func).code, {
+ // @ts-ignore Can't call `generate` in ESM directly, must reference `default`.
+ .format(generate.default(func).code, {
parser: 'typescript',
singleQuote: true,
trailingComma: 'all',
diff --git a/script/generate-e2e-tests.js b/script/generate-e2e-tests.js
index f504d221911..c59a923a6ec 100644
--- a/script/generate-e2e-tests.js
+++ b/script/generate-e2e-tests.js
@@ -1,10 +1,14 @@
'use strict'
-const fs = require('node:fs')
-const path = require('node:path')
-const prettier = require('prettier')
-const prettierConfig = require('@github/prettier-config')
-const recast = require('recast')
+import fs from 'node:fs'
+import {fileURLToPath} from 'url'
+import path from 'node:path'
+import prettier from 'prettier'
+import prettierConfig from '@github/prettier-config'
+import recast from 'recast'
+
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
const E2E_DIR = path.join(__dirname, '..', 'e2e', 'components')
const components = new Map([
@@ -1501,8 +1505,8 @@ for (const [component, info] of components) {
})
const source = recast.parse(`import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
+import {visit} from '../test-helpers/storybook.js'
+import {themes} from '../test-helpers/themes.js'
test.describe('${component}', () => {
${stories.join('\n\n')}
diff --git a/script/get-export-sizes.js b/script/get-export-sizes.js
index dd9f371fa49..c658cf200f5 100644
--- a/script/get-export-sizes.js
+++ b/script/get-export-sizes.js
@@ -1,15 +1,16 @@
-'use strict'
+import fs from 'node:fs/promises'
+import path from 'node:path'
+import {fileURLToPath} from 'url'
+import core from '@actions/core'
+import {nodeResolve} from '@rollup/plugin-node-resolve'
+import virtual from '@rollup/plugin-virtual'
+import {filesize} from 'filesize'
+import {rollup} from 'rollup'
+import {minify} from 'terser'
+import gzipSize from 'gzip-size'
-const fs = require('node:fs/promises')
-const path = require('node:path')
-const core = require('@actions/core')
-const commonjs = require('@rollup/plugin-commonjs')
-const {nodeResolve} = require('@rollup/plugin-node-resolve')
-const virtual = require('@rollup/plugin-virtual')
-const {filesize} = require('filesize')
-const {rollup} = require('rollup')
-const {minify} = require('terser')
-const gzipSize = require('gzip-size')
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
async function main() {
const rootDirectory = path.resolve(__dirname, '..')
@@ -36,12 +37,7 @@ async function main() {
const bundle = await rollup({
input: filepath,
external,
- plugins: [
- nodeResolve(),
- commonjs({
- include: [/node_modules/],
- }),
- ],
+ plugins: [nodeResolve()],
onwarn: () => {},
})
const {output} = await bundle.generate({
@@ -60,9 +56,6 @@ async function main() {
external,
plugins: [
nodeResolve(),
- commonjs({
- include: /node_modules/,
- }),
virtual({
__entrypoint__: `export { ${identifier} } from '${filepath}';`,
}),
diff --git a/src/__tests__/filterObject.test.ts b/src/__tests__/filterObject.test.ts
index 89aeabc5c48..474ffb70ae0 100644
--- a/src/__tests__/filterObject.test.ts
+++ b/src/__tests__/filterObject.test.ts
@@ -1,4 +1,5 @@
-import {isColorValue, isShadowValue, filterObject} from '../utils/theme'
+import Theme from '../utils/theme'
+const {isColorValue, isShadowValue, filterObject} = Theme
describe('filterObject', () => {
const colors = {
diff --git a/src/__tests__/theme.test.ts b/src/__tests__/theme.test.ts
index 0f5033bf4e6..448383f47d6 100644
--- a/src/__tests__/theme.test.ts
+++ b/src/__tests__/theme.test.ts
@@ -1,4 +1,5 @@
-import {isShadowValue} from '../utils/theme'
+import Theme from '../utils/theme'
+const {isShadowValue} = Theme
describe('isShadowValue', () => {
it('accepts transparent', () => {
diff --git a/src/theme.ts b/src/theme.ts
index 7896b4e0b8f..c538a890b0f 100644
--- a/src/theme.ts
+++ b/src/theme.ts
@@ -1,6 +1,8 @@
import {KeyPaths} from './utils/types/KeyPaths'
import primitives from '@primer/primitives'
-import {partitionColors, fontStack, omitScale} from './utils/theme'
+import __theme from './utils/theme'
+
+const {partitionColors, fontStack, omitScale} = __theme
const {lineHeight: lineHeights} = primitives.typography.normal
diff --git a/src/utils/theme.js b/src/utils/theme.js
index bf890c042c6..850d5233c42 100644
--- a/src/utils/theme.js
+++ b/src/utils/theme.js
@@ -1,8 +1,8 @@
// Utility functions used in theme-preval.js
// This file needs to be a JavaScript file using CommonJS to be compatible with preval
-const isEmpty = require('lodash.isempty')
-const isObject = require('lodash.isobject')
+import isEmpty from 'lodash.isempty'
+import isObject from 'lodash.isobject'
function fontStack(fonts) {
return fonts.map(font => (font.includes(' ') ? `"${font}"` : font)).join(', ')
@@ -57,7 +57,7 @@ function omitScale(obj) {
return rest
}
-module.exports = {
+export default {
fontStack,
isShadowValue,
isColorValue,
diff --git a/tsconfig.build.json b/tsconfig.build.json
index daa96c32564..197a78d869a 100644
--- a/tsconfig.build.json
+++ b/tsconfig.build.json
@@ -1,7 +1,7 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
- "emitDeclarationOnly": true
+ "emitDeclarationOnly": true,
},
// NOTE: We exclude Storybook stories and test utilities which import
// Storybook and its dependencies, because:
diff --git a/tsconfig.json b/tsconfig.json
index 3aabac162e4..83279e56195 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,7 @@
{
"compilerOptions": {
"target": "esnext",
- "module": "commonjs",
+ "module": "esnext",
"allowJs": true,
"checkJs": false,
"jsx": "preserve",
@@ -25,5 +25,9 @@
"script/**/*.ts",
"e2e/**/*.ts",
"playwright.config.ts"
- ]
+ ],
+ "ts-node": {
+ "esm": true,
+ "experimentalSpecifierResolution": "node"
+ }
}