diff --git a/docs/kit/dock-system.md b/docs/kit/dock-system.md index 596fbb74..6ea52fd3 100644 --- a/docs/kit/dock-system.md +++ b/docs/kit/dock-system.md @@ -505,6 +505,8 @@ DevTools for Rolldown joins this group out of the box. From the dock settings panel, users hide or reorder members within a group independently, and hide the whole group from its row. When a group's members span several sub-categories, each sub-category reorders on its own and shows its own header. +Pinning an entry moves it into a dedicated **Pinned** category that leads the dock bar ahead of every other category. A top-level entry (or a whole group button) pins to the bar-level Pinned bucket; a grouped member pins to a Pinned sub-category that leads its own group, staying inside the group rather than surfacing on the bar. A pinned entry shows even when its home category is hidden, and unpinning returns it to that category in its previous position. + ## Common options Every dock type accepts these base fields: @@ -515,7 +517,7 @@ Every dock type accepts these base fields: | `title` | `string` | Label shown in the dock. | | `icon` | `string \| { light, dark }` | Iconify name, URL, data URI, or light/dark pair. | | `category` | `'app' \| 'framework' \| 'web' \| 'advanced' \| 'default'` | Outer dock-bar bucket, or the in-group sub-category when `groupId` resolves to a group — see [Categories inside a group](#categories-inside-a-group). Defaults to `'default'`. | -| `defaultOrder` | `number` | Higher numbers appear first. Default `0`. | +| `defaultOrder` | `number` | Orders entries within a category; lower numbers appear first. Default `0`. | | `when` | `string` | Visibility expression — see [When Clauses](/kit/when-clauses). | | `badge` | `string` | Short text badge (e.g. unread count). | | `groupId` | `string` | Collapse this entry under a group's button; the group's `category` becomes this entry's outer bucket — see [Docked groups](#docked-groups). | diff --git a/packages/core/src/client/webcomponents/components/views-builtin/SettingsDocks.vue b/packages/core/src/client/webcomponents/components/views-builtin/SettingsDocks.vue index 4a75d299..71a3fb1a 100644 --- a/packages/core/src/client/webcomponents/components/views-builtin/SettingsDocks.vue +++ b/packages/core/src/client/webcomponents/components/views-builtin/SettingsDocks.vue @@ -5,7 +5,7 @@ import type { SharedState } from 'devframe/utils/shared-state' import type { DevToolsDockEntriesGrouped, DevToolsDocksUserSettings } from '../../state/dock-settings' import { useDraggable } from '@vueuse/core' import { computed, ref, useTemplateRef } from 'vue' -import { docksGroupByCategories, getCategoryLabel, getGroupMembers, getGroupMembersGrouped } from '../../state/dock-settings' +import { docksGroupByCategories, getCategoryLabel, getGroupMembers, getGroupMembersGrouped, isCategoryHideable } from '../../state/dock-settings' import { sharedStateToRef } from '../../state/docks' import HashBadge from '../display/HashBadge.vue' import DockIcon from '../dock/DockIcon.vue' @@ -197,7 +197,7 @@ function toggleDock(id: string, visible?: boolean) { } function toggleCategory(category: string, visible?: boolean) { - if (category === '~builtin') + if (!isCategoryHideable(category)) return const hidden = settings.value.docksCategoriesHidden const isHidden = hidden.includes(category) @@ -299,9 +299,9 @@ function resetCustomOrderForContainer(container: string) {