Skip to content

fix(dev-portal): align stacking with app portal - #5193

Merged
odinr merged 1 commit into
mainfrom
chdefrene-fix-dev-portal-sheets
Aug 3, 2026
Merged

fix(dev-portal): align stacking with app portal#5193
odinr merged 1 commit into
mainfrom
chdefrene-fix-dev-portal-sheets

Conversation

@chdefrene

@chdefrene chdefrene commented Jul 31, 2026

Copy link
Copy Markdown
Member

Why is this change needed?

Hosted applications in the dev portal should use the same overlay layering contract as app-portal. Without that contract, fixed overlays can obscure portal chrome and side-sheet content can begin underneath the 48px header.

What is the current behavior?

The dev portal header and hosted-app region do not establish the same stacking levels as app-portal. Hosted side sheets also fall back to the viewport origin because their app scope does not inherit the portal header offset.

What is the new behavior?

The header renders in stacking layer 2 and the positioned hosted-app region renders in stacking layer 1. The app region scopes a hardcoded 48px header offset so side sheets begin below the header and use the remaining viewport height, while full-viewport scrims remain behind portal chrome.

What is the intended behavior or invariant?

Portal chrome must remain above overlays created by hosted applications. Hosted overlays must inherit the dev portal's 48px header boundary without introducing a global CSS variable.

Does this PR introduce a breaking change?

No.

Impact assessment:

  • Breaking changes: No
  • Version bump: Patch
  • Consumer impact: Local app development now matches app-portal overlay placement and stacking.
  • Downstream impact: Limited to @equinor/fusion-framework-dev-portal consumers.

Review guidance:

Compare the Head and Main stacking values with app-portal's header (z-index: 2) and app mount (z-index: 1). In a hosted app, open a side sheet and verify its top is 48px, its bottom reaches the viewport edge, and its scrim does not cover the portal header.

Additional context

A patch changeset is included. Local app-admin verification confirmed the side sheet renders from 48px to the viewport bottom and the scrim remains below the header stacking layer.

Validation:

  • pnpm test passed.
  • pnpm build passed.
  • Targeted Biome and Fusion lint checks passed.
  • pnpm -w check reaches one pre-existing formatting error in unchanged packages/linting/rules/src/require-property-tsdoc/index.ts; that file matches origin/main.
  • Required PR checks passed.

Related issues

None.

Checklist

  • Confirm completion of the self-review checklist
  • Confirm TSDoc captures intent for functions, hooks, components, classes, and named arrow functions
  • Confirm iterator blocks, decision gates, RxJS chains, and complex decisions explain why they exist
  • Confirm React logic and derived values are resolved before markup when applicable
  • Confirm README/docs are updated for user-facing changes
  • Confirm changes to target branch validation
    • Included files validated
    • No new linting warnings
    • Not a duplicate PR (check existing)
  • Confirm adherence to code of conduct

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@changeset-bot

changeset-bot Bot commented Jul 31, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c0a3772

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@equinor/fusion-framework-dev-portal Patch
@equinor/fusion-framework-cli Patch
poc-portal Patch
portal-analytics Patch
portal Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added the 🐞 bug Something isn't working label Jul 31, 2026
@chdefrene
chdefrene marked this pull request as ready for review July 31, 2026 08:38
@chdefrene
chdefrene requested a review from a team as a code owner July 31, 2026 08:38
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 65.85% 3142 / 4771
🔵 Statements 65.23% 3770 / 5779
🔵 Functions 51.09% 1093 / 2139
🔵 Branches 55.54% 1737 / 3127
File CoverageNo changed files found.
Generated in workflow #15049 for commit c0a3772 by the Vitest Coverage Report Action

@chdefrene
chdefrene changed the base branch from main to chdefrene-rollout-context-selector-toplayer July 31, 2026 08:53
@chdefrene
chdefrene changed the base branch from chdefrene-rollout-context-selector-toplayer to main July 31, 2026 08:54
@odinr
odinr merged commit f7d2666 into main Aug 3, 2026
11 checks passed
@odinr
odinr deleted the chdefrene-fix-dev-portal-sheets branch August 3, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞 bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants