From c129d7196b468f95a0fe2be4f54eb675f9e38945 Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 09:55:47 +0200 Subject: [PATCH 1/8] fix(popover): polyfill compatible with ds layers --- packages/web/src/popover/popover.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/popover/popover.ts b/packages/web/src/popover/popover.ts index 4c14f6bb41..cebba06ac9 100644 --- a/packages/web/src/popover/popover.ts +++ b/packages/web/src/popover/popover.ts @@ -21,7 +21,7 @@ import { QUICK_EVENT, } from '../utils/utils'; -if (isBrowser() && !isSupported()) polyfillPopover(); // Ensure popover polyfill is loaded in browser environment only +if (isBrowser() && !isSupported()) on(window, 'load', polyfillPopover); // Ensure popover polyfill is loaded in browser environment after CSS is loaded to ensure correct order of CSS layers. declare global { interface GlobalEventHandlersEventMap { From a7f104c85584d9bd76cef9b38a1980071bfda81c Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:04:06 +0200 Subject: [PATCH 2/8] add layer order --- packages/css/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/css/src/index.css b/packages/css/src/index.css index 23fb4ab15d..51636f57fb 100644 --- a/packages/css/src/index.css +++ b/packages/css/src/index.css @@ -1,6 +1,6 @@ @charset "UTF-8"; -@layer ds.theme, ds.base, ds.components; +@layer popover-polyfill, ds.theme, ds.base, ds.components; /** Import order defines ordinal specificity for layers */ @import url('./base.css') layer(ds.base); From ce7d3f19754b6bbe42dd6c99fa1fe147c5e5ba0c Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:04:18 +0200 Subject: [PATCH 3/8] dont polyfill if polyfilled --- packages/web/src/popover/popover.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web/src/popover/popover.ts b/packages/web/src/popover/popover.ts index cebba06ac9..6aea6a700f 100644 --- a/packages/web/src/popover/popover.ts +++ b/packages/web/src/popover/popover.ts @@ -9,6 +9,7 @@ import { size, } from '@floating-ui/dom'; import { + isPolyfilled, isSupported, apply as polyfillPopover, } from '@oddbird/popover-polyfill/fn'; @@ -21,7 +22,8 @@ import { QUICK_EVENT, } from '../utils/utils'; -if (isBrowser() && !isSupported()) on(window, 'load', polyfillPopover); // Ensure popover polyfill is loaded in browser environment after CSS is loaded to ensure correct order of CSS layers. +if (isBrowser() && !isSupported() && !isPolyfilled()) + on(window, 'load', polyfillPopover); // Ensure popover polyfill is loaded in browser environment after CSS is loaded to ensure correct order of CSS layers. declare global { interface GlobalEventHandlersEventMap { From 2793d5b4453409e4ac3c5f41e4c2083d0567847b Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:05:25 +0200 Subject: [PATCH 4/8] changeset --- .changeset/tiny-kiwis-deny.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/tiny-kiwis-deny.md diff --git a/.changeset/tiny-kiwis-deny.md b/.changeset/tiny-kiwis-deny.md new file mode 100644 index 0000000000..372fbc8cec --- /dev/null +++ b/.changeset/tiny-kiwis-deny.md @@ -0,0 +1,6 @@ +--- +"@digdir/designsystemet-css": patch +"@digdir/designsystemet-web": patch +--- + +fix loading order for popover-polyfill From 8b527e4835f51e07579efe43e14a3b0b3e1daed4 Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:30:30 +0200 Subject: [PATCH 5/8] does this make a difference? --- packages/web/src/popover/popover.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web/src/popover/popover.ts b/packages/web/src/popover/popover.ts index 6aea6a700f..a63e85bdea 100644 --- a/packages/web/src/popover/popover.ts +++ b/packages/web/src/popover/popover.ts @@ -22,8 +22,9 @@ import { QUICK_EVENT, } from '../utils/utils'; -if (isBrowser() && !isSupported() && !isPolyfilled()) +if (isBrowser() && !isSupported() && !isPolyfilled()) { on(window, 'load', polyfillPopover); // Ensure popover polyfill is loaded in browser environment after CSS is loaded to ensure correct order of CSS layers. +} declare global { interface GlobalEventHandlersEventMap { From 9b2cfe7e938e8b21b9742f63d328bf9f5a7d49bc Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:34:32 +0200 Subject: [PATCH 6/8] revert --- packages/web/src/popover/popover.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/web/src/popover/popover.ts b/packages/web/src/popover/popover.ts index a63e85bdea..6aea6a700f 100644 --- a/packages/web/src/popover/popover.ts +++ b/packages/web/src/popover/popover.ts @@ -22,9 +22,8 @@ import { QUICK_EVENT, } from '../utils/utils'; -if (isBrowser() && !isSupported() && !isPolyfilled()) { +if (isBrowser() && !isSupported() && !isPolyfilled()) on(window, 'load', polyfillPopover); // Ensure popover polyfill is loaded in browser environment after CSS is loaded to ensure correct order of CSS layers. -} declare global { interface GlobalEventHandlersEventMap { From 6f56f744d27ac465e45bc9df88bb1dc4d93a0b13 Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Tue, 23 Jun 2026 10:37:55 +0200 Subject: [PATCH 7/8] gh: update existing snapshot release comment --- .github/workflows/release.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1f9d54f93..2920a5cd9c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,8 +74,10 @@ jobs: echo "No open PR found for branch $BRANCH, skipping comment." exit 0 fi + MARKER="" PUBLISHED_AT="$(TZ='Europe/Oslo' date '+%d.%m.%Y %H:%M:%S')" { + echo "$MARKER" echo "### 📦 Snapshot release published" echo echo "Published at \`$PUBLISHED_AT\` to npm with tag \`$TAG\`:" @@ -97,7 +99,17 @@ jobs: fi done } > comment.md - gh pr comment "$PR" --body-file comment.md + # Find an existing snapshot-release comment to update, otherwise create a new one + COMMENT_ID=$(gh api "repos/${GITHUB_REPOSITORY}/issues/${PR}/comments" --paginate \ + --jq "[.[] | select(.body | contains(\"$MARKER\"))] | last | .id // empty") + if [ -n "$COMMENT_ID" ]; then + echo "Updating existing comment $COMMENT_ID" + gh api --method PATCH "repos/${GITHUB_REPOSITORY}/issues/comments/${COMMENT_ID}" \ + -F body=@comment.md > /dev/null + else + echo "No existing comment found, creating a new one" + gh pr comment "$PR" --body-file comment.md + fi release: name: Release From e7328024ecebe6e340a6e3ce4135038ebd830867 Mon Sep 17 00:00:00 2001 From: Michael Marszalek Date: Wed, 24 Jun 2026 13:00:16 +0200 Subject: [PATCH 8/8] check if invokers is polyfilled --- packages/web/src/invokers/invokers.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/web/src/invokers/invokers.ts b/packages/web/src/invokers/invokers.ts index 725345c1a6..95958548ec 100644 --- a/packages/web/src/invokers/invokers.ts +++ b/packages/web/src/invokers/invokers.ts @@ -1,4 +1,8 @@ -import { isSupported, apply as polyfillInvokers } from 'invokers-polyfill/fn'; +import { + isPolyfilled, + isSupported, + apply as polyfillInvokers, +} from 'invokers-polyfill/fn'; import { isBrowser } from '../utils/utils'; -if (isBrowser() && !isSupported()) polyfillInvokers(); // Ensure invoker commands polyfill is loaded in browser environment only +if (isBrowser() && !isSupported() && !isPolyfilled()) polyfillInvokers(); // Ensure invoker commands polyfill is loaded in browser environment only