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// Application templates
7#[path = "../src-app/mod.rs"]
8pub mod app;
9
10// Core components
11pub mod button;
12pub mod card;
13pub mod dialog;
14pub mod icon_button;
15pub mod menu;
16pub mod tabs;
17pub mod toast;
18
19// Form components
20pub mod checkbox;
21pub mod input;
22pub mod potentiometer;
23pub mod select;
24pub mod slider;
25pub mod toggle;
26
27// Data display
28pub mod avatar;
29pub mod badge;
30pub mod progress;
31pub mod spinner;
32pub mod text;
33
34// Feedback
35pub mod alert;
36pub mod tooltip;
37
38// Navigation
39pub mod accordion;
40pub mod breadcrumbs;
41
42// Layout
43pub mod stack;
44
45// Re-export commonly used types
46
47// Buttons
48pub use button::{Button, ButtonSize, ButtonTheme, ButtonVariant};
49pub use icon_button::{IconButton, IconButtonSize, IconButtonTheme, IconButtonVariant};
50
51// Containers
52pub use card::Card;
53pub use dialog::{Dialog, DialogSize};
54
55// Navigation
56pub use accordion::{Accordion, AccordionItem, AccordionMode, AccordionTheme};
57pub use breadcrumbs::{BreadcrumbItem, BreadcrumbSeparator, Breadcrumbs};
58pub use menu::{Menu, MenuBar, MenuBarItem, MenuItem, MenuTheme, menu_bar_button};
59pub use tabs::{TabItem, TabVariant, Tabs, TabsTheme};
60
61// Notifications
62pub use alert::{Alert, AlertVariant, InlineAlert};
63pub use toast::{Toast, ToastContainer, ToastPosition, ToastVariant};
64
65// Form
66pub use checkbox::{Checkbox, CheckboxSize};
67pub use input::{Input, InputSize, InputVariant};
68pub use potentiometer::Potentiometer;
69pub use select::{Select, SelectOption, SelectSize, SelectTheme};
70pub use slider::{Slider, SliderSize, SliderTheme};
71pub use toggle::{Toggle, ToggleSize};
72
73// Data display
74pub use avatar::{Avatar, AvatarGroup, AvatarShape, AvatarSize, AvatarStatus};
75pub use badge::{Badge, BadgeDot, BadgeSize, BadgeVariant};
76pub use progress::{CircularProgress, Progress, ProgressSize, ProgressVariant};
77pub use spinner::{LoadingDots, Spinner, SpinnerSize};
78pub use text::{Code, Heading, Link, Text, TextSize, TextWeight};
79
80// Feedback
81pub use tooltip::{Tooltip, TooltipPlacement, WithTooltip};
82
83// Layout
84pub use stack::{Divider, HStack, Spacer, StackAlign, StackJustify, StackSpacing, VStack};
85
86// Application templates
87pub use app::{MiniApp, MiniAppConfig};