gpui_storybook/
lib.rs

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}