docs(ui-settings): describe the settings domain base and its shell

`SettingsRoot` and the `sidebar.settings` occupancy moved to ui-settings-general,
but both READMEs still read as if ui-settings were the shell. ui-settings now
documents what it actually is — the `ctx.settingsScope` transport plus the slot
type declarations, with the bind ownership, refresh triggers, write revision
handling, and decode refusal a preference row must know — and records the
loopback-only and single-field write gaps in place of two limitations that no
longer exist. ui-settings-general documents the shell it now renders. The stale
module JSDoc on both halves follows.
This commit is contained in:
imccyu
2026-08-11 15:53:34 +08:00
parent 364f7c7076
commit 32378d27b4
9 changed files with 35 additions and 26 deletions

View File

@@ -1,11 +1,12 @@
/**
* Settings shell slot contract — the canonical home of every settings slot
* type. The shell is a pure composition face with zero copy of its own: it
* occupies the sidebar-owned `sidebar.settings` hole and declares the slots
* below; ALL text (trigger label, panel title, header actions, close aria,
* section content) arrives from registrants. A feature owns its settings surface — adding a
* setting never means editing the shell; copy that belongs to no single
* feature (chrome, the General section) is owned by ui-settings-general.
* Settings slot contract — the canonical home of every settings slot type,
* owned by the settings domain base rather than by the shell that renders
* them (ui-settings-general, which occupies `sidebar.settings`). The shell has
* zero copy of its own: ALL text (trigger label, panel title, header actions,
* close aria, section content) arrives from registrants. A feature owns its
* own settings pages — adding a setting never means editing the shell; copy
* that belongs to no single feature (chrome, the General section) is owned by
* ui-settings-general too.
*/

View File

@@ -1,4 +1,4 @@
/** Host loader entry for the browser implementation exported from `./client`. */
/** Host plugin body — no host-side behavior for the settings shell plugin. */
/** Host plugin body — no host-side behavior for the settings domain base plugin. */
export function apply(): void {}