gpui_ui_kit/
lib.rs

1//! UI Kit - A local component library for GPUI
2//!
3//! Inspired by adabraka-ui patterns but compatible with zed's gpui version.
4//! Provides reusable, composable UI components with consistent styling.
5
6// Core components
7pub mod button;
8pub mod card;
9pub mod dialog;
10pub mod icon_button;
11pub mod menu;
12pub mod tabs;
13pub mod toast;
14
15// Form components
16pub mod checkbox;
17pub mod input;
18pub mod select;
19pub mod slider;
20pub mod potentiometer;
21pub mod toggle;
22
23// Data display
24pub mod avatar;
25pub mod badge;
26pub mod progress;
27pub mod spinner;
28pub mod text;
29
30// Feedback
31pub mod alert;
32pub mod tooltip;
33
34// Navigation
35pub mod accordion;
36pub mod breadcrumbs;
37
38// Layout
39pub mod stack;
40
41// Re-export commonly used types
42
43// Buttons
44pub use button::{Button, ButtonSize, ButtonTheme, ButtonVariant};
45pub use icon_button::{IconButton, IconButtonSize, IconButtonTheme, IconButtonVariant};
46
47// Containers
48pub use card::Card;
49pub use dialog::{Dialog, DialogSize};
50
51// Navigation
52pub use accordion::{Accordion, AccordionItem, AccordionMode, AccordionTheme};
53pub use breadcrumbs::{BreadcrumbItem, BreadcrumbSeparator, Breadcrumbs};
54pub use menu::{Menu, MenuBar, MenuBarItem, MenuItem, menu_bar_button};
55pub use tabs::{TabItem, TabVariant, Tabs};
56
57// Notifications
58pub use alert::{Alert, AlertVariant, InlineAlert};
59pub use toast::{Toast, ToastContainer, ToastPosition, ToastVariant};
60
61// Form
62pub use checkbox::{Checkbox, CheckboxSize};
63pub use input::{Input, InputSize, InputVariant};
64pub use potentiometer::Potentiometer;
65pub use select::{Select, SelectOption, SelectSize};
66pub use slider::{Slider, SliderSize, SliderTheme};
67pub use toggle::{Toggle, ToggleSize};
68
69// Data display
70pub use avatar::{Avatar, AvatarGroup, AvatarShape, AvatarSize, AvatarStatus};
71pub use badge::{Badge, BadgeDot, BadgeSize, BadgeVariant};
72pub use progress::{CircularProgress, Progress, ProgressSize, ProgressVariant};
73pub use spinner::{LoadingDots, Spinner, SpinnerSize};
74pub use text::{Code, Heading, Link, Text, TextSize, TextWeight};
75
76// Feedback
77pub use tooltip::{Tooltip, TooltipPlacement, WithTooltip};
78
79// Layout
80pub use stack::{Divider, HStack, Spacer, StackAlign, StackJustify, StackSpacing, VStack};