 - Adds the Switch component - Updates `Selected`, `Selectable` -> `ToggleState`, `Toggleable` - Adds `checkbox` and `switch` functions to align better with other elements in our layout system. We decided not to merge Switch and Checkbox. However, in a followup I'll introduce a Toggle or AnyToggle enum so we can update `CheckboxWithLabel` -> `ToggleWithLabel` as this component will work exactly the same with either a Checkbox or a Switch. Release Notes: - N/A
94 lines
3.8 KiB
Rust
94 lines
3.8 KiB
Rust
use gpui::Render;
|
|
use story::{Story, StoryItem, StorySection};
|
|
|
|
use crate::{prelude::*, ToggleButton};
|
|
|
|
pub struct ToggleButtonStory;
|
|
|
|
impl Render for ToggleButtonStory {
|
|
fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
|
|
Story::container()
|
|
.child(Story::title_for::<ToggleButton>())
|
|
.child(
|
|
StorySection::new().child(
|
|
StoryItem::new(
|
|
"Default",
|
|
ToggleButton::new("default_toggle_button", "Hello"),
|
|
)
|
|
.description("Displays a toggle button.")
|
|
.usage(""),
|
|
),
|
|
)
|
|
.child(
|
|
StorySection::new().child(
|
|
StoryItem::new(
|
|
"Toggle button group",
|
|
h_flex()
|
|
.child(
|
|
ToggleButton::new(1, "Apple")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.first(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(2, "Banana")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.middle(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(3, "Cherry")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.middle(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(4, "Dragonfruit")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.last(),
|
|
),
|
|
)
|
|
.description("Displays a group of toggle buttons.")
|
|
.usage(""),
|
|
),
|
|
)
|
|
.child(
|
|
StorySection::new().child(
|
|
StoryItem::new(
|
|
"Toggle button group with selection",
|
|
h_flex()
|
|
.child(
|
|
ToggleButton::new(1, "Apple")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.first(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(2, "Banana")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.toggle_state(true)
|
|
.middle(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(3, "Cherry")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.middle(),
|
|
)
|
|
.child(
|
|
ToggleButton::new(4, "Dragonfruit")
|
|
.style(ButtonStyle::Filled)
|
|
.size(ButtonSize::Large)
|
|
.last(),
|
|
),
|
|
)
|
|
.description("Displays a group of toggle buttons.")
|
|
.usage(""),
|
|
),
|
|
)
|
|
.into_element()
|
|
}
|
|
}
|