feat(web): combine plugin settings into tabs
This commit is contained in:
@@ -51,6 +51,15 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
||||
* item registrant; the shell neither declares nor renders it.)
|
||||
*/
|
||||
'settings.section': { kind: 'list'; scope: 'root'; owner: SettingsSectionOwnerProps }
|
||||
/**
|
||||
* One page inside the Plugins settings section. The section owner renders
|
||||
* localized entry labels as tabs and mounts each contribution inside its
|
||||
* corresponding tab panel. Options: `id` (tab key), `order` (tab order),
|
||||
* and `label` (registrant-localized tab text). Declared at runtime by the
|
||||
* feature that owns the Plugins section; the type lives here so inventory
|
||||
* and configuration plugins collaborate without depending on one another.
|
||||
*/
|
||||
'settings.plugins.tab': { kind: 'list'; scope: 'root'; owner: SettingsPluginsTabOwnerProps }
|
||||
/**
|
||||
* Root-scoped onboarding steps contributed by settings features. The
|
||||
* shell mounts one ordered step at a time; the active registrant either
|
||||
@@ -83,6 +92,12 @@ export interface SettingsGeneralItemOwnerProps {
|
||||
children?: never
|
||||
}
|
||||
|
||||
/** Owner share of a Plugins tab (the section supplies nothing). */
|
||||
export interface SettingsPluginsTabOwnerProps {
|
||||
/** Marker field: tab owner props are intentionally empty. */
|
||||
children?: never
|
||||
}
|
||||
|
||||
/** Owner share of the trigger content seat: the sidebar column state. */
|
||||
export interface SettingsTriggerOwnerProps {
|
||||
/** Whether the sidebar renders wide content (false = 56px rail, icon only). */
|
||||
|
||||
@@ -13,7 +13,7 @@ import { SettingsScopeService } from './settings-scope.ts'
|
||||
|
||||
export type {
|
||||
SettingsGeneralItemOwnerProps, SettingsHeaderOwnerProps, SettingsOnboardingOwnerProps,
|
||||
SettingsSectionOwnerProps, SettingsTriggerOwnerProps,
|
||||
SettingsPluginsTabOwnerProps, SettingsSectionOwnerProps, SettingsTriggerOwnerProps,
|
||||
} from './contract/slots.ts'
|
||||
export { SettingsScopeController, SettingsScopeService } from './settings-scope.ts'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user