diff --git a/.changeset/brave-months-shop.md b/.changeset/brave-months-shop.md
new file mode 100644
index 0000000000..361671c21c
--- /dev/null
+++ b/.changeset/brave-months-shop.md
@@ -0,0 +1,5 @@
+---
+'@digdir/designsystemet-react': patch
+---
+
+Correctly mark dependencies as external. This ensures Accordion works when consumers have enabled tree-shaking.
diff --git a/.github/workflows/checks-packages.yml b/.github/workflows/checks-packages.yml
index ee1c50af25..a1321a35de 100644
--- a/.github/workflows/checks-packages.yml
+++ b/.github/workflows/checks-packages.yml
@@ -13,6 +13,9 @@ jobs:
- uses: ./.github/actions/gh-setup
- name: Build
run: yarn build
+ - name: Check that we don't bundle node_modules
+ shell: bash
+ run: if [ -d packages/react/dist/esm/node_modules ]; then exit 1; fi
- name: Types
run: yarn types:react
- name: Test
diff --git a/apps/_components/package.json b/apps/_components/package.json
index bdee52b788..9cd0a12489 100644
--- a/apps/_components/package.json
+++ b/apps/_components/package.json
@@ -23,6 +23,7 @@
"@digdir/designsystemet-react": "workspace:^",
"@navikt/aksel-icons": "^6.14.0",
"@types/react-syntax-highlighter": "^15.5.13",
+ "clsx": "^2.1.1",
"react-syntax-highlighter": "^15.5.0"
},
"devDependencies": {
diff --git a/apps/storefront/package.json b/apps/storefront/package.json
index 41eb9505f1..7953d089cb 100644
--- a/apps/storefront/package.json
+++ b/apps/storefront/package.json
@@ -19,6 +19,7 @@
"@next/mdx": "^14.2.5",
"@repo/components": "workspace:^",
"@vercel/analytics": "^1.3.1",
+ "clsx": "^2.1.1",
"hastscript": "^9.0.0",
"next": "^14.2.5",
"react": "^18.3.1",
diff --git a/apps/storybook/package.json b/apps/storybook/package.json
index 3d811e7f97..053aac2831 100644
--- a/apps/storybook/package.json
+++ b/apps/storybook/package.json
@@ -10,6 +10,7 @@
"license": "ISC",
"description": "",
"dependencies": {
+ "clsx": "^2.1.1",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
diff --git a/apps/theme/components/Previews/Components/Components.tsx b/apps/theme/components/Previews/Components/Components.tsx
index 6d32accf0e..affa277bcd 100644
--- a/apps/theme/components/Previews/Components/Components.tsx
+++ b/apps/theme/components/Previews/Components/Components.tsx
@@ -398,7 +398,7 @@ export const Components = () => {
Spansk
Fransk
-
+
Velg språk for å endre innholdet på siden
diff --git a/apps/theme/package.json b/apps/theme/package.json
index e1219b3aef..e381914752 100644
--- a/apps/theme/package.json
+++ b/apps/theme/package.json
@@ -18,6 +18,7 @@
"@react-awesome/use-click-outside": "^0.0.3",
"@repo/components": "workspace:^",
"chroma-js": "^2.6.0",
+ "clsx": "^2.1.1",
"next": "^14.2.5",
"react": "^18.3.1",
"react-color": "^2.19.3",
diff --git a/package.json b/package.json
index d435717eca..dfe35e1aff 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,6 @@
"@vitejs/plugin-react-swc": "^3.7.0",
"@vitest/coverage-v8": "^2.0.5",
"@vitest/expect": "^2.0.5",
- "clsx": "^2.1.1",
"copyfiles": "^2.4.1",
"prettier": "^3.3.3",
"stylelint": "^16.8.1",
diff --git a/packages/react/package.json b/packages/react/package.json
index 2d3904a7cd..e65c161b6a 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -40,7 +40,8 @@
"@navikt/aksel-icons": "^6.14.0",
"@radix-ui/react-slot": "^1.1.0",
"@tanstack/react-virtual": "^3.10.7",
- "@u-elements/u-details": "^0.0.5"
+ "@u-elements/u-details": "^0.0.5",
+ "clsx": "^2.1.1"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^26.0.1",
@@ -55,7 +56,6 @@
"react-dom": "^18.3.1",
"rimraf": "^6.0.1",
"rollup": "^4.20.0",
- "rollup-plugin-peer-deps-external": "^2.2.4",
"typescript": "^5.5.4"
}
}
diff --git a/packages/react/rollup.config.js b/packages/react/rollup.config.js
index 473aaf373c..4e700e7ff7 100644
--- a/packages/react/rollup.config.js
+++ b/packages/react/rollup.config.js
@@ -1,6 +1,26 @@
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
-import peerDepsExternal from 'rollup-plugin-peer-deps-external';
+import pkg from './package.json';
+
+// These are dependencies, but are not in our package.json
+const implicitDependencies = [
+ '@digdir/designsystemet-theme',
+ '@digdir/designsystemet-css',
+ '@digdir/design-system-tokens',
+];
+
+const dependencies = Object.keys({
+ ...implicitDependencies,
+ ...pkg.dependencies,
+ ...pkg.peerDependencies,
+});
+
+/*
+Regexes to correctly mark submodules from dependencies as being external
+*/
+const dependenciesSubmodules = dependencies.map(
+ (dep) => new RegExp(`^${dep}/`),
+);
export default [
{
@@ -21,12 +41,7 @@ export default [
preserveModulesRoot: 'tsc-build',
},
],
- external: [
- /@digdir\/designsystemet-theme/,
- /@digdir\/designsystemet-css/,
- /@digdir\/design-system-tokens/,
- /@navikt\/aksel-icons/,
- ],
- plugins: [peerDepsExternal(), resolve(), commonjs()],
+ external: [...dependencies, ...dependenciesSubmodules],
+ plugins: [resolve(), commonjs()],
},
];
diff --git a/plugins/figma-plugin/package.json b/plugins/figma-plugin/package.json
index aae91c0eda..7d93573c16 100644
--- a/plugins/figma-plugin/package.json
+++ b/plugins/figma-plugin/package.json
@@ -18,6 +18,7 @@
"@digdir/designsystemet-css": "workspace:^",
"@digdir/designsystemet-react": "workspace:^",
"@digdir/designsystemet-theme": "workspace:^",
+ "clsx": "^2.1.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.0"
diff --git a/yarn.lock b/yarn.lock
index 8db75c0d6d..6b4fe6baee 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2926,6 +2926,7 @@ __metadata:
"@storybook/types": "npm:^8.2.9"
"@types/react": "npm:18.3.3"
"@types/react-dom": "npm:^18.3.0"
+ clsx: "npm:^2.1.1"
react: "npm:^18.3.1"
react-dom: "npm:^18.3.1"
remark-gfm: "npm:^4.0.0"
@@ -2975,13 +2976,13 @@ __metadata:
"@testing-library/react": "npm:^16.0.0"
"@testing-library/user-event": "npm:^14.5.2"
"@u-elements/u-details": "npm:^0.0.5"
+ clsx: "npm:^2.1.1"
copyfiles: "npm:^2.4.1"
jsdom: "npm:^24.1.1"
react: "npm:^18.3.1"
react-dom: "npm:^18.3.1"
rimraf: "npm:^6.0.1"
rollup: "npm:^4.20.0"
- rollup-plugin-peer-deps-external: "npm:^2.2.4"
typescript: "npm:^5.5.4"
peerDependencies:
react: ">=18.3.1"
@@ -4075,6 +4076,7 @@ __metadata:
"@digdir/designsystemet-react": "workspace:^"
"@navikt/aksel-icons": "npm:^6.14.0"
"@types/react-syntax-highlighter": "npm:^15.5.13"
+ clsx: "npm:^2.1.1"
react-syntax-highlighter: "npm:^15.5.0"
typescript: "npm:^5.5.4"
peerDependencies:
@@ -9189,6 +9191,7 @@ __metadata:
"@types/react": "npm:^18.3.3"
"@types/react-dom": "npm:^18.3.0"
"@vitejs/plugin-react": "npm:^4.3.1"
+ clsx: "npm:^2.1.1"
npm-run-all2: "npm:^6.2.2"
postcss: "npm:^8.4.41"
react: "npm:^18.3.1"
@@ -14980,15 +14983,6 @@ __metadata:
languageName: node
linkType: hard
-"rollup-plugin-peer-deps-external@npm:^2.2.4":
- version: 2.2.4
- resolution: "rollup-plugin-peer-deps-external@npm:2.2.4"
- peerDependencies:
- rollup: "*"
- checksum: 10/49b7b3f5ca14550146249b5fd86043bffb82a2c40750c80a1845c3b694fadde58435bae0c912ad8cb1c1ef6c1f8ad64914153793391cb13d52e2bc3aa2ac61e2
- languageName: node
- linkType: hard
-
"rollup@npm:^4.13.0":
version: 4.14.0
resolution: "rollup@npm:4.14.0"
@@ -15126,7 +15120,6 @@ __metadata:
"@vitejs/plugin-react-swc": "npm:^3.7.0"
"@vitest/coverage-v8": "npm:^2.0.5"
"@vitest/expect": "npm:^2.0.5"
- clsx: "npm:^2.1.1"
copyfiles: "npm:^2.4.1"
prettier: "npm:^3.3.3"
stylelint: "npm:^16.8.1"
@@ -15685,6 +15678,7 @@ __metadata:
"@types/react": "npm:^18.3.3"
"@types/react-dom": "npm:^18.3.0"
"@vercel/analytics": "npm:^1.3.1"
+ clsx: "npm:^2.1.1"
hastscript: "npm:^9.0.0"
next: "npm:^14.2.5"
react: "npm:^18.3.1"
@@ -16285,6 +16279,7 @@ __metadata:
"@types/react-color": "npm:^3.0.12"
"@types/react-dom": "npm:^18.3.0"
chroma-js: "npm:^2.6.0"
+ clsx: "npm:^2.1.1"
next: "npm:^14.2.5"
react: "npm:^18.3.1"
react-color: "npm:^2.19.3"