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"