feat: docked groups#377
Merged
Merged
Conversation
Upgrade devframe/@devframes/hub to 0.5.4 to pick up the dock-group data layer (`groupId` on entries + the `type: 'group'` entry with `defaultChildId`), then build the client experience on top of it. A group renders as a single dock-bar button. Activating it opens a popover of its members, or — when `defaultChildId` is set — jumps straight to that member. The open member's view gains a sidebar listing its siblings for sub-navigation. Membership is a flat pointer: members stay independently registered and orphan-tolerant (a `groupId` pointing at an unregistered group renders as a normal top-level entry). Wired across the float, edge, and standalone docks, plus the command palette (members nest under their group). Adds a "Nuxt" group example to the playground and unit tests for the grouping helpers.
`~viteplus` was a hard-coded dock category that visually banded Vite Plus integrations together. Now that docked groups exist, model it as a real group: Vite DevTools seeds a built-in "Vite+" group, and integrations join it via `groupId: DEVTOOLS_VITEPLUS_GROUP_ID` rather than the category. Drops `~viteplus` from the category union and order maps, points the Rolldown UI at the new group, and lets the empty-group rule hide the Vite+ button until an integration registers under it.
Extend the docks settings page to manage grouped entries: a group renders as a section whose members are nested beneath it. Each member can be hidden, reordered (arrows or drag), and pinned independently, and the whole group can be hidden via its own row. Reordering is generalized over containers so categories and groups share the same drag/move machinery. Adds an explicit `defaultOrder` to the playground Nuxt group members and covers the hide/order helper semantics with tests.
commit: |
Slim the in-view group sidebar down to a narrow vertical rail of icons with hover tooltips for titles, instead of a wide labelled list. Keeps the active highlight and member badges; frees up horizontal space for the view.
Add a "Docked groups" section covering the `group` entry type, `groupId` membership, `defaultChildId`, orphan tolerance, the built-in Vite+ group, and the group-aware settings controls. Update the entry-type table, the `DockEntry` interface, and the common-options reference.
# Conflicts: # packages/core/src/client/webcomponents/.generated/css.ts
…lures The devframe/@devframes/hub 0.5.4 upgrade lands the upstream vitejs#339 fix, so the static-build SPA now renders without the `createHash` or `messages:list` dump errors. The `it.fails` guards consequently pass and CI flags them as "expected to fail"; drop `.fails` so they assert the fixed behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Introduces docked groups — a way to collapse several dock entries under a single dock-bar button — and uses them to reshape how Vite Plus integrations are presented.
This builds on the dock-group data layer landed upstream in devframe/
@devframes/hub0.5.4(groupIdon dock entries + thetype: 'group'entry withdefaultChildId), which this PR upgrades to. A group is a flat pointer, not containment: members stay independently registered and are orphan-tolerant — agroupIdpointing at an unregistered group renders as a normal top-level entry.What you get
defaultChildIdis set — jumps straight to that member. The open member's view gains a sidebar listing its siblings for sub-navigation. Empty groups hide themselves.groupId: DEVTOOLS_VITEPLUS_GROUP_IDinstead of the removed~vitepluscategory.This unlocks the motivating use case: a framework like Nuxt can split its features into individually-pluggable Vite DevTools entries, all collected under one Nuxt button — see the new playground example.
Linked Issues
Additional context
DevToolsViewGrouptype andDEVTOOLS_VITEPLUS_GROUP_IDconstant (kit), reflected in the API snapshots.getRegisteredGroupIds/getGroupMembers/getEntryGroup+ thecollapseGroupsoption) carry the logic and are unit-tested; reviewers may want to focus on the persisted-iframe layout changes inDockPanel/DockEdge/DockStandalone(arelative flex-1view wrapper keeps iframe positioning intact beside the new sidebar).pnpm lint,pnpm test,pnpm typecheck, andpnpm buildall pass.This PR was created with the help of an agent.