PROMOTED to global.d.ts as GeoLeafThemeSelector (B.25) — the surface is public
enough to belong with the other typed members of GeoLeafGlobal, and keeping a
second copy here is how the two drifted: this one declared
getCurrentTheme?: () => string | undefined while the selector returns
_state.currentTheme, typed string | null (theme-selector-state.ts:28). Alias, so
every existing use site keeps its name.
Narrow structural view of
GeoLeaf.ThemeSelector.PROMOTED to
global.d.tsasGeoLeafThemeSelector(B.25) — the surface is public enough to belong with the other typed members ofGeoLeafGlobal, and keeping a second copy here is how the two drifted: this one declaredgetCurrentTheme?: () => string | undefinedwhile the selector returns_state.currentTheme, typedstring | null(theme-selector-state.ts:28). Alias, so every existing use site keeps its name.