Canonical structural view of GeoLeaf.ThemeSelector — the theme switch bar
(in-core theme-selector capability, mounted by its installer).
PROMOTED here from capabilities/permalink/permalink-types.ts, which had written
the only view of this surface for its own use (B.25); that module now aliases this
one rather than keeping a second, quietly divergent copy — its getCurrentTheme
declared string | undefined where _state.currentTheme is string | null
(theme-selector-state.ts:28), so null was outside the declared type at the one
call site that reads it.
Narrow on purpose (the two members consumers actually reach for) with the usual
unknown tail — same posture as _UITheme / Legend above. Precision grows.
Canonical structural view of
GeoLeaf.ThemeSelector— the theme switch bar (in-coretheme-selectorcapability, mounted by its installer).PROMOTED here from
capabilities/permalink/permalink-types.ts, which had written the only view of this surface for its own use (B.25); that module now aliases this one rather than keeping a second, quietly divergent copy — itsgetCurrentThemedeclaredstring | undefinedwhere_state.currentThemeisstring | null(theme-selector-state.ts:28), sonullwas outside the declared type at the one call site that reads it.Narrow on purpose (the two members consumers actually reach for) with the usual
unknowntail — same posture as_UITheme/Legendabove. Precision grows.