1mod button;
4pub use button::{
5 ButtonDirection, ButtonIconPosition, ButtonProgressPlayback, ButtonShape, ButtonSize,
6 ButtonTransitionInputs, ButtonTransitionPlayback, ButtonVariant, FabSize, IconButtonWidth,
7 MaterialButton, material_button,
8};
9mod fab;
10pub use fab::{ExtendedFab, Fab, FabColor};
11mod fab_menu;
12pub use fab_menu::{FabMenu, FabMenuAlign, FabMenuColor, FabMenuItem, FabMenuPresentation};
13mod icon_button;
14mod split_button;
15mod standard_button_group;
16pub use icon_button::{IconButton, IconButtonVariant};
17pub use split_button::{SplitButton, SplitButtonPart};
18pub use standard_button_group::{ButtonDensity, ButtonGroup, EXPANDED_RATIO, standard_group_gap};
19#[cfg(all(test, feature = "gpui-fast"))]
21mod a11y_tests;
22mod app_bar;
23mod avatar;
24mod badge;
25pub use badge::{Badge, BadgeColor, BadgePosition, badge_label};
26mod button_group;
27#[cfg(test)]
28mod color_guard_tests;
29#[cfg(test)]
30mod controls;
31mod divider;
32mod slider;
33mod snackbar;
34mod switch;
35mod toolbar;
36pub use divider::{
37 DividerContext, DividerDirection, DividerOrientation, DividerVariant, MaterialDivider,
38};
39pub use search::{
40 SEARCH_BAR_HEIGHT, SEARCH_SUGGESTION_HEIGHT, SearchField, SearchSuggestion, SearchView,
41 SearchViewLayout, SearchViewStyle,
42};
43pub use slider::{MaterialSlider, SliderAppearance, SliderColor, SliderSize};
44pub use snackbar::{SNACKBAR_CLOSE_ICON, Snackbar};
45pub use switch::{MaterialSwitch, SwitchIcons};
46mod caption;
47mod carousel;
48mod date_parts;
49mod date_picker;
50mod time_picker;
51pub use chrono::{Datelike, NaiveDate, NaiveTime, Timelike, Weekday};
52pub use date_parts::{
53 CalendarDay, DAY_CELL, DayRange, PickerListItem, PickerMenuButton, YearChip, add_months,
54 first_of_month, month_weeks, week_days,
55};
56pub use date_picker::{
57 DATE_INPUT_PICKER_WIDTH, DATE_PICKER_WIDTH, DateInputMode, DateMatcher, DatePicker,
58 DatePickerEvent, DatePickerLabels, DatePickerState, DatePickerVariant, DatePickerView,
59 DateSelection, PickerDialog, today,
60};
61pub use time_picker::{
62 ClockDial, DIAL_SIZE, PeriodSelector, TimeFormat, TimeInputMode, TimeOrientation, TimePicker,
63 TimePickerEvent, TimePickerLabels, TimePickerState, TimeSelector, TimeUnit,
64};
65mod checkbox;
66mod chips;
67mod choice;
68mod dialog;
69mod feedback;
70mod focus;
71mod list;
72mod loading_indicator;
73mod menu;
74mod navigation;
75mod navigation_drawer;
76mod preview;
77mod progress;
78mod radio;
79mod roving;
80mod search;
81mod sheets;
82mod tabs;
83mod text;
84mod text_field;
85mod tile;
86mod title_bar;
87mod tooltip;
88
89pub use app_bar::{
90 BOTTOM_APP_BAR_HEIGHT, BottomAppBar, TOP_APP_BAR_HEIGHT, TopAppBar, TopAppBarVariant,
91 collapsed_title_alpha,
92};
93pub use avatar::{AVATAR_SIZE, Avatar, AvatarContent, monogram_initials};
94pub use button_group::{ConnectedButtonGroup, GroupLabels, GroupSelection};
95pub use caption::{Caption, CaptionButton, CaptionButtons, CaptionLabels, title_bar_control};
96pub use carousel::{
97 CAROUSEL_ITEM_RADIUS, CAROUSEL_SMALL_ITEM, CarouselItem, CarouselLayout, Keyline, Keylines,
98 MaterialCarousel,
99};
100pub use checkbox::{CheckboxState, MaterialCheckbox};
101pub use chips::{AssistChip, CHIP_HEIGHT, ChipStyle, FilterChip, InputChip, SuggestionChip, chip};
102pub use choice::{ChoiceGroup, ChoiceTile, Tint, choice_radio, tinted_icon};
103pub use dialog::{
104 DIALOG_WIDTH, DialogActionAlignment, DialogAnimation, DialogSize, MaterialDialog, SCRIM_OPACITY,
105};
106pub use feedback::{
107 BADGE_CONTAINER, BADGE_LABEL, CARD_PADDING, CardState, CardSurface, CardVariant,
108 LARGE_BADGE_PADDING, LARGE_BADGE_SIZE, MaterialCard, NoticeKind, SMALL_BADGE_SIZE, StatusKind,
109 card, card_surface, large_badge, notice_banner, outlined_status_chip, small_badge, status_chip,
110};
111#[allow(deprecated)]
112pub use feedback::{BadgeKind, badge, outlined_badge};
113pub use focus::{FocusRing, RevealFocus, RingedButton, contain_scroll};
114pub use list::{
115 LIST_SEGMENT_GAP, LIST_SEGMENT_INNER_RADIUS, LIST_SEGMENT_RADIUS, ListDensity, ListItem,
116 ListLeading, ListLines, ListTrailing, list_subheader, segmented_list,
117};
118pub use loading_indicator::{
119 LOADING_INDICATOR_SIZE, LoadingFrame, LoadingIndicator, LoadingShape, loading_indicator_frame,
120};
121pub use menu::{
122 ExposedDropdown, MaterialMenu, MaterialMenuItem, MenuDensity, MenuGroup, MenuPopup, MenuStyle,
123};
124pub use navigation::{
125 MEDIUM_WIDTH, NavBadge, NavIcon, NavItem, NavItemLayout, NavigationBar, NavigationItem,
126 NavigationRail, RAIL_COLLAPSED_WIDTH, RAIL_EXPANDED_WIDTH, RailAlignment, navigation_scrim,
127};
128pub use navigation_drawer::{DRAWER_WIDTH, DrawerPosition, NavigationDrawer};
129mod adaptive;
130pub use adaptive::{
131 SizedContent, WindowHeightClass, WindowSizeClass, WindowWidthClass, sized_content,
132};
133mod pane_logic;
134mod pane_scaffold;
135pub use pane_logic::{
136 AdaptStrategies, AdaptStrategy, BackNavigationBehavior, DEFAULT_PANE_ANCHORS,
137 LIST_DETAIL_ORDER, LIST_DETAIL_STRATEGIES, PaneAdaptedValue, PaneAnchor, PaneDestination,
138 PaneDirective, PaneLayout, PaneLayoutInput, PaneMotion, PaneNavigator, PaneRect, PaneRole,
139 PaneRule, PaneTransition, SUPPORTING_PANE_ORDER, SUPPORTING_PANE_STRATEGIES, ThreePaneValue,
140 closest_pane_anchor, next_pane_anchor, pane_directive, pane_motions, pane_transitions,
141 previous_pane_anchor, three_pane_layout, three_pane_value,
142};
143pub use pane_scaffold::{
144 FEED_COLUMN_MIN_WIDTH, FEED_GAP, FEED_MARGIN, FEED_MARGIN_COMPACT, FeedLayout, FeedMetrics,
145 PaneScaffold, feed_metrics,
146};
147mod pull_to_refresh;
148pub use pull_to_refresh::{
149 PULL_TO_REFRESH_DRAG_MULTIPLIER, PULL_TO_REFRESH_INDICATOR_SIZE,
150 PULL_TO_REFRESH_LOADING_INDICATOR_SIZE, PULL_TO_REFRESH_MAX_DISTANCE,
151 PULL_TO_REFRESH_MIN_ALPHA, PULL_TO_REFRESH_SPINNER_SIZE, PULL_TO_REFRESH_THRESHOLD, PullArrow,
152 PullModel, PullToRefresh, PullToRefreshIndicator, pull_arrow, pull_loading_rotation,
153 pull_vertical_offset,
154};
155mod navigation_suite;
156pub use navigation_suite::{
157 NavigationSuite, NavigationSuiteType, SUITE_PRIMARY_ACTION_PADDING, navigation_suite_type,
158};
159pub use preview::InteractionPreview;
160pub use progress::{
161 CircularProgress, CircularProgressFrame, CircularProgressPlayback, LINEAR_INDETERMINATE_MS,
162 LinearProgress, PROGRESS_THICK_THICKNESS, PROGRESS_THICKNESS, ProgressShape,
163 circular_indeterminate_frame, circular_progress, circular_progress_size, icon_spinner,
164 icon_spinner_with_playback, indeterminate_circular_progress,
165 indeterminate_circular_progress_with_playback, indeterminate_linear_progress_with_playback,
166 indeterminate_progress, indeterminate_progress_with_label,
167 indeterminate_progress_with_playback, linear_indeterminate_lines, linear_progress, progress,
168 progress_with_label, sample_circular_progress, spinner, spinner_with_playback,
169};
170pub use radio::{MaterialRadio, MaterialRadioGroup};
171pub use sheets::{BottomSheetDetent, MaterialBottomSheet, MaterialSideSheet, SideSheetEdge};
172pub use tabs::{MaterialTabs, TabItem, TabsVariant};
173pub use text::{
174 accessible_text, error_text, info_callout, page_heading, section_heading, section_title,
175 semantic_label, supporting_info,
176};
177pub use text_field::{
178 TEXT_FIELD_HEIGHT, TEXT_FIELD_WIDTH, TextField, TextFieldDensity, TextFieldVariant,
179};
180pub use tile::{
181 TileGroup, TileScale, disclosure_chevron, list_tile, tile, tile_chevron, tile_info,
182};
183pub use title_bar::{
184 TitleBar, title_bar_leading, title_bar_window_options, traffic_light_position,
185};
186pub use toolbar::{
187 TOOLBAR_FAB_GAP, TOOLBAR_MARGIN, TOOLBAR_SIZE, Toolbar, ToolbarButton, ToolbarColor,
188 ToolbarConfiguration, ToolbarOrientation,
189};
190pub use tooltip::{MaterialTooltip, PLAIN_TOOLTIP_MAX_WIDTH, RICH_TOOLTIP_WIDTH};
191
192pub(crate) fn init(cx: &mut gpui::App) {
193 roving::init(cx);
194 menu::init(cx);
195 date_picker::init(cx);
196}