1use gpui::App;
2use std::ops::Deref;
3
4mod component_traits;
5mod element_ext;
6pub mod global_state;
7mod icon;
8mod index_path;
9#[cfg(any(feature = "inspector", debug_assertions))]
10mod inspector;
11mod root;
12mod sizing;
13mod styled;
14mod time;
15mod title_bar;
16mod virtual_list;
17mod window_border;
18mod window_ext;
19
20pub(crate) mod actions {
21 pub use gpui_base::actions::*;
22}
23
24pub mod accordion;
25pub mod alert;
26pub mod attachment;
27pub mod avatar;
28pub mod badge;
29pub mod breadcrumb;
30pub mod bubble;
31pub mod button;
32pub mod chart;
33pub mod checkbox;
34pub mod clipboard;
35pub mod collapsible;
36pub mod color_picker;
37pub mod combobox;
38pub mod command;
39pub mod description_list;
40pub mod dialog;
41pub mod dock;
42pub mod form;
43pub mod group_box;
44pub mod highlighter;
45pub mod history;
46pub mod hover_card;
47pub mod input;
48pub mod kbd;
49pub mod label;
50pub mod link;
51pub mod list;
52pub mod marker;
53pub mod menu;
54pub mod message;
55pub mod message_scroller;
56pub mod native_menu;
57pub mod notification;
58pub mod pagination;
59pub mod plot;
60pub mod popover;
61pub mod progress;
62pub mod radio;
63pub mod rating;
64pub mod resizable {
66 pub use super::{
67 ResizablePanel, ResizablePanelEvent, ResizablePanelGroup, ResizableState, h_resizable,
68 resizable_panel, v_resizable,
69 };
70}
71pub mod scroll;
72pub mod searchable_list;
73pub mod select;
74pub mod separator;
75pub mod setting;
76pub mod sheet;
77pub mod shimmer;
78pub mod sidebar;
79pub mod skeleton;
80pub mod slider;
81pub mod spinner;
82pub mod status_bar;
83pub mod stepper;
84pub mod switch;
85pub mod tab;
86pub mod table;
87pub mod tag;
88pub mod text;
89pub mod theme;
90pub mod tooltip;
91pub mod tree;
92
93pub use crate::Disableable;
94pub use element_ext::*;
95pub use global_state::GlobalState;
96pub use gpui_base::animation;
97pub(crate) use gpui_base::measurement_enabled as measure_enable;
98#[doc(hidden)]
99pub(crate) use gpui_base::resize_handle;
100pub use gpui_base::{
101 AxisExt, Edges, FocusTrapElement, InteractiveElementExt, LengthExt, Measure, OngoingScrollExt,
102 Placement, Side, measure, measure_if,
103};
104pub use gpui_base::{
105 ResizablePanel, ResizablePanelEvent, ResizablePanelGroup, ResizableState, h_resizable,
106 resizable_panel, v_resizable,
107};
108pub use gpui_component_macros::icon_named;
109pub use icon::*;
110pub use index_path::IndexPath;
111pub use input::{Rope, RopeExt, RopeLines};
112#[cfg(any(feature = "inspector", debug_assertions))]
113pub use inspector::*;
114pub use root::Root;
115pub use styled::*;
116pub use theme::*;
117pub use time::{calendar, date_picker};
118pub use title_bar::*;
119pub use virtual_list::{VirtualList, VirtualListScrollHandle, h_virtual_list, v_virtual_list};
120pub use window_border::{WindowBorder, window_border, window_paddings};
121pub use window_ext::WindowExt;
122
123rust_i18n::i18n!("locales", fallback = "en");
124
125pub fn init(cx: &mut App) {
129 theme::init(cx);
130 global_state::init(cx);
131 #[cfg(any(feature = "inspector", debug_assertions))]
132 inspector::init(cx);
133 root::init(cx);
134 gpui_base::init(cx);
135 date_picker::init(cx);
136 dock::init(cx);
137 sheet::init(cx);
138 list::init(cx);
139 command::init(cx);
140 notification::init(cx);
141 popover::init(cx);
142 menu::init(cx);
143 table::init(cx);
144 tooltip::init(cx);
145}
146
147#[inline]
148pub fn locale() -> impl Deref<Target = str> {
149 rust_i18n::locale()
150}
151
152#[inline]
153pub fn set_locale(locale: &str) {
154 rust_i18n::set_locale(locale)
155}