src/core/packages/chrome/sidebar/README.md
Chrome sidebar packages provide a shared, persistent side panel that can host plugin-defined apps without disrupting main app navigation.
@kbn/core-chrome-sidebar - Public types, createSidebarStore factory, and app id validation.@kbn/core-chrome-sidebar-components - React components (SidebarHeader, SidebarBody) and hooks (useSidebar, useSidebarApp).@kbn/core-chrome-sidebar-context - Shared React context, bundled via kbn-ui-shared-deps-src to avoid multiple instances.@kbn/core-chrome-sidebar-internal - Registry, persistence, and runtime services (SidebarService, SidebarStateService).@kbn/core-chrome-sidebar-mocks - Jest helpers for setup/start contracts.Store state management uses a config + hydration pattern:
createSidebarStore() returns a plain config object (schema + actions factory)registerApp(), stored in registrygetApp() calls createLiveStore() in sidebar-internal to hydrate the config into a live storeThis enables lazy initialization - stores are only created when first accessed. The separation keeps plugin-facing code simple (pure config) while platform code (sidebar-internal) owns all runtime concerns.
localStorage on reload.undefined values when schema evolves.restoreOnReload: false to avoid reopening with empty state.src/core/packages/chrome/sidebar/docs/sidebar.mdxREADME.md