This PR formalizes design components with the Component and ComponentPreview traits. You can open the preview UI with `workspace: open component preview`. Component previews no longer need to return `Self` allowing for more complex previews, and previews of components like `ui::Tooltip` that supplement other components rather than are rendered by default. `cargo-machete` incorrectly identifies `linkme` as an unused dep on crates that have components deriving `IntoComponent`, so you may need to add this to that crate's `Cargo.toml`: ```toml # cargo-machete doesn't understand that linkme is used in the component macro [package.metadata.cargo-machete] ignored = ["linkme"] ``` Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
27 lines
1.1 KiB
Rust
27 lines
1.1 KiB
Rust
//! The prelude of this crate. When building UI in Zed you almost always want to import this.
|
|
|
|
pub use gpui::prelude::*;
|
|
pub use gpui::{
|
|
div, px, relative, rems, AbsoluteLength, App, Context, DefiniteLength, Div, Element, ElementId,
|
|
InteractiveElement, ParentElement, Pixels, Rems, RenderOnce, SharedString, Styled, Window,
|
|
};
|
|
|
|
pub use component::{example_group, example_group_with_title, single_example, ComponentPreview};
|
|
pub use ui_macros::IntoComponent;
|
|
|
|
pub use crate::styles::{rems_from_px, vh, vw, PlatformStyle, StyledTypography, TextSize};
|
|
pub use crate::traits::clickable::*;
|
|
pub use crate::traits::disableable::*;
|
|
pub use crate::traits::fixed::*;
|
|
pub use crate::traits::styled_ext::*;
|
|
pub use crate::traits::toggleable::*;
|
|
pub use crate::traits::visible_on_hover::*;
|
|
pub use crate::DynamicSpacing;
|
|
pub use crate::{h_flex, h_group, v_flex, v_group};
|
|
pub use crate::{Button, ButtonSize, ButtonStyle, IconButton, SelectableButton};
|
|
pub use crate::{ButtonCommon, Color};
|
|
pub use crate::{Headline, HeadlineSize};
|
|
pub use crate::{Icon, IconName, IconPosition, IconSize};
|
|
pub use crate::{Label, LabelCommon, LabelSize, LineHeightStyle};
|
|
pub use theme::ActiveTheme;
|