1#[cfg(feature = "macros")]
2pub use gpui_storybook_macros::*;
3
4use gpui_storybook_core::locale::LocaleStore;
5
6pub use gpui_storybook_core::{
7 assets::Assets,
8 gallery::Gallery,
9 i18n::change_locale,
10 language::{CurrentLanguage, Language},
11 story::{Story, StoryContainer, create_new_window},
12};
13
14#[doc(hidden)]
15pub use gpui_storybook_core::registry as __registry;
16
17#[doc(hidden)]
18pub use inventory as __inventory;
19
20pub fn init<L: Language>(language: L, cx: &mut ::gpui::App) {
21 cx.set_global(CurrentLanguage(language));
22 cx.set_global(
23 Box::new(gpui_storybook_core::locale::LocaleManager::<L>::new()) as Box<dyn LocaleStore>,
24 );
25 gpui_storybook_core::story::init(cx);
26 for entry in inventory::iter::<__registry::InitEntry> {
27 (entry.init_fn)(cx);
28 }
29}
30
31pub fn generate_stories(
32 window: &mut ::gpui::Window,
33 cx: &mut ::gpui::App,
34) -> Vec<::gpui::Entity<StoryContainer>> {
35 inventory::iter::<__registry::StoryEntry>()
36 .map(|entry| (entry.create_fn)(window, cx))
37 .collect()
38}