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}