Skip to content

ryan/navigation#11133

Draft
ryanflorence wants to merge 27 commits intomainfrom
ryan/navigation
Draft

ryan/navigation#11133
ryanflorence wants to merge 27 commits intomainfrom
ryan/navigation

Conversation

@ryanflorence
Copy link
Member

No description provided.

Ensure tracked frame instances are disposed before node removal during diffing so nested frame cleanup still runs on non-document-root navigations.

Made-with: Cursor
This introduces navigation state handling for targeted frame reloads and adds `rmx-target`/`rmx-src` anchor attributes so declarative links can direct updates into named frames.

Made-with: Cursor
Use a single parameterized dashboard shell route and one shell handler to select nested content, removing duplicated shell route/action definitions while preserving permalink behavior.

Made-with: Cursor
Replace the old multi-frame scaffold with a single main controller and a shared LMS layout, while keeping frame resolution wiring in place for future frame routes.

Made-with: Cursor
…ted settings nav

Split settings into its own route/controller with LMS-specific sections and render a secondary settings sidebar inside the main app shell so each settings action has a focused content pane.

Made-with: Cursor
…s layout

Move settings-specific frame navigation and sidebar concerns out of the shared app layout and into a dedicated settings layout with explicit settings frame routes.

Made-with: Cursor
Accept either a single mixin descriptor or an array of descriptors in component runtime paths, and simplify the frame-navigation demo to use direct mix values for one-off styles.

Made-with: Cursor
Expose frame identity to resolveFrame callbacks and re-export the shared callback types so consumers can branch on named vs top-level frame reloads without annotating handler parameters.

Made-with: Cursor
Refetch the full settings shell inside the named settings frame while keeping top-level navigation as full-page loads, so deep settings URLs still render correctly on refresh.

Made-with: Cursor
Make frame context mandatory throughout the resolveFrame abstraction so callers can rely on top-vs-named frame metadata without optional checks.

Made-with: Cursor
Replace the resolveFrame metadata object with an optional target string so frame reloads carry only the named frame identity that callers actually branch on.

Made-with: Cursor
Align the demo's frame fetches with the simplified resolveFrame API by always marking frame requests and only sending a target header for named frame reloads.

Made-with: Cursor
Avoid applying partial streamed HTML to the live DOM before frame and hydration markers are complete so frame replacement doesn't leave orphaned markers during navigation.

Made-with: Cursor
Rename the settings page components to local route names and move the full-page versus fragment branching into a shared settings shell component while updating the component change note for the resolveFrame target API.

Made-with: Cursor
Treat incoming frame HTML as serialized defaults so reloads do not clobber browser-managed UI state for interactive elements. Add regression tests and a change note covering preserved open, checked, value, selection, and popover state.

Made-with: Cursor
Expose current and top frame src values during SSR so shared components can rely on frame URL state in both server and client render trees.

Made-with: Cursor
Replace layout-level active props with a shared NavLink so the demo can determine active navigation state from route and controller matching instead of controller-specific prop wiring.

Made-with: Cursor
Carry the top frame URL through client and server frame requests so targeted settings navigation can resolve active route state consistently across SSR and frame reloads.

Made-with: Cursor
Export demo frame names from the route config so targeted settings navigation and frame request handling stop duplicating string literals.

Made-with: Cursor
Normalize `mix` to an array or undefined when elements are created so wrapper components can compose mixins without special casing single descriptors.
Keep JSX accepting either a single mixin descriptor or an array for both host elements and component call sites.

Made-with: Cursor
Keep tests, demos, and docs on the supported single-argument run() signature and avoid relying on ambient Navigation API typings so the monorepo typechecks cleanly.

Made-with: Cursor
Surface hydration, ready(), and frame reload failures on the typed run() runtime target so apps can handle them consistently.

Made-with: Cursor
Render a polished error screen for app runtime failures so the navigation demo can recover gracefully when frame loading breaks.

Made-with: Cursor
@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

Preview Build Available

A preview build has been created for this PR. You can install it using:

pnpm install "remix-run/remix#preview/pr-11133&path:packages/remix"

This preview build will be updated automatically as you push new commits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant