1use gpui::Render;
2use story::Story;
3
4use crate::{prelude::*, IconName};
5use crate::{Button, ButtonStyle};
6
7pub struct ButtonStory;
8
9impl Render for ButtonStory {
10 fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
11 Story::container()
12 .child(Story::title_for::<Button>())
13 .child(Story::label("Default"))
14 .child(Button::new("default_filled", "Click me"))
15 .child(Story::label("Selected"))
16 .child(Button::new("selected_filled", "Click me").toggle_state(true))
17 .child(Story::label("Selected with `selected_label`"))
18 .child(
19 Button::new("selected_label_filled", "Click me")
20 .toggle_state(true)
21 .selected_label("I have been selected"),
22 )
23 .child(Story::label("With `label_color`"))
24 .child(Button::new("filled_with_label_color", "Click me").color(Color::Created))
25 .child(Story::label("With `icon`"))
26 .child(Button::new("filled_with_icon", "Click me").icon(IconName::FileGit))
27 .child(Story::label("Selected with `icon`"))
28 .child(
29 Button::new("filled_and_selected_with_icon", "Click me")
30 .toggle_state(true)
31 .icon(IconName::FileGit),
32 )
33 .child(Story::label("Default (Subtle)"))
34 .child(Button::new("default_subtle", "Click me").style(ButtonStyle::Subtle))
35 .child(Story::label("Default (Transparent)"))
36 .child(Button::new("default_transparent", "Click me").style(ButtonStyle::Transparent))
37 }
38}