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