toggle_button.rs

 1use gpui::Render;
 2use story::{StoryContainer, StoryItem, StorySection};
 3
 4use crate::{prelude::*, ToggleButton};
 5
 6pub struct ToggleButtonStory;
 7
 8impl Render for ToggleButtonStory {
 9    fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
10        StoryContainer::new(
11            "Toggle Button",
12            "crates/ui/src/components/stories/toggle_button.rs",
13        )
14        .child(
15            StorySection::new().child(
16                StoryItem::new(
17                    "Default",
18                    ToggleButton::new("default_toggle_button", "Hello"),
19                )
20                .description("Displays a toggle button.")
21                .usage(""),
22            ),
23        )
24        .child(
25            StorySection::new().child(
26                StoryItem::new(
27                    "Toggle button group",
28                    h_flex()
29                        .child(
30                            ToggleButton::new(1, "Apple")
31                                .style(ButtonStyle::Filled)
32                                .size(ButtonSize::Large)
33                                .first(),
34                        )
35                        .child(
36                            ToggleButton::new(2, "Banana")
37                                .style(ButtonStyle::Filled)
38                                .size(ButtonSize::Large)
39                                .middle(),
40                        )
41                        .child(
42                            ToggleButton::new(3, "Cherry")
43                                .style(ButtonStyle::Filled)
44                                .size(ButtonSize::Large)
45                                .middle(),
46                        )
47                        .child(
48                            ToggleButton::new(4, "Dragonfruit")
49                                .style(ButtonStyle::Filled)
50                                .size(ButtonSize::Large)
51                                .last(),
52                        ),
53                )
54                .description("Displays a group of toggle buttons.")
55                .usage(""),
56            ),
57        )
58        .child(
59            StorySection::new().child(
60                StoryItem::new(
61                    "Toggle button group with selection",
62                    h_flex()
63                        .child(
64                            ToggleButton::new(1, "Apple")
65                                .style(ButtonStyle::Filled)
66                                .size(ButtonSize::Large)
67                                .first(),
68                        )
69                        .child(
70                            ToggleButton::new(2, "Banana")
71                                .style(ButtonStyle::Filled)
72                                .size(ButtonSize::Large)
73                                .selected(true)
74                                .middle(),
75                        )
76                        .child(
77                            ToggleButton::new(3, "Cherry")
78                                .style(ButtonStyle::Filled)
79                                .size(ButtonSize::Large)
80                                .middle(),
81                        )
82                        .child(
83                            ToggleButton::new(4, "Dragonfruit")
84                                .style(ButtonStyle::Filled)
85                                .size(ButtonSize::Large)
86                                .last(),
87                        ),
88                )
89                .description("Displays a group of toggle buttons.")
90                .usage(""),
91            ),
92        )
93        .into_element()
94    }
95}