#![warn(missing_debug_implementations)]
#![deny(missing_docs)]
mod accordion;
mod badge;
mod browser_tabs;
mod button;
mod callout;
mod card;
mod checkbox;
mod collapsing;
mod color_picker;
mod drawer;
mod file_drop_zone;
mod flash;
mod indicator;
mod input;
mod knob;
mod log_bar;
mod menu;
mod menu_bar;
mod modal;
mod multi_terminal;
mod pairing;
mod pill;
mod popover;
mod progress_bar;
mod progress_ring;
mod range_slider;
mod segmented;
mod select;
mod slider;
mod spinner;
mod steps;
mod switch;
mod tabs;
mod text_area;
mod theme;
mod theme_switcher;
mod toast;
mod tooltip;
pub use accordion::{Accordion, AccordionItem, AccordionUi};
pub use badge::{Badge, BadgeTone};
pub use browser_tabs::{BrowserTab, BrowserTabs, BrowserTabsEvent};
pub use button::{Button, ButtonSize};
pub use callout::{Callout, CalloutTone};
pub use card::Card;
pub use checkbox::Checkbox;
pub use collapsing::CollapsingSection;
pub use color_picker::ColorPicker;
pub use drawer::{Drawer, DrawerSide};
pub use file_drop_zone::{FileDropResponse, FileDropZone};
pub use flash::{flash_error, flash_success, FlashKind, ResponseFlashExt, FLASH_DURATION};
pub use indicator::{Indicator, IndicatorState};
pub use input::TextInput;
pub use knob::{Knob, KnobScale, KnobSize};
pub use log_bar::{LogBar, LogEntry, LogKind};
pub use menu::{Menu, MenuItem, SubMenuItem};
pub use menu_bar::{MenuBar, MenuBarUi};
pub use modal::Modal;
pub use multi_terminal::{
LineKind, MultiTerminal, TerminalEvent, TerminalLine, TerminalPane, TerminalStatus,
};
pub use pairing::{PairItem, Pairing};
pub use pill::StatusPill;
pub use popover::{Popover, PopoverSide};
pub use progress_bar::ProgressBar;
pub use progress_ring::ProgressRing;
pub use range_slider::RangeSlider;
pub use segmented::SegmentedButton;
pub use select::Select;
pub use slider::Slider;
pub use spinner::Spinner;
pub use steps::{Steps, StepsStyle};
pub use switch::Switch;
pub use tabs::TabBar;
pub use text_area::TextArea;
pub use theme::{Accent, BuiltInTheme, Palette, Theme, Typography};
pub use theme_switcher::ThemeSwitcher;
pub use toast::{Toast, Toasts};
pub use tooltip::{Tooltip, TooltipSide};
pub use egui;
pub mod glyphs {
pub const UPLOAD: char = '\u{E000}';
pub const DOWNLOAD: char = '\u{E001}';
pub const SEARCH: char = '\u{E002}';
pub const PIN: char = '\u{E003}';
pub const COPY: char = '\u{E004}';
pub const CIRCLE_ALERT: char = '\u{E005}';
pub const NETWORK: char = '\u{E006}';
pub const ZOOM_IN: char = '\u{E007}';
pub const ZOOM_OUT: char = '\u{E008}';
pub const POWER: char = '\u{E009}';
pub const CHECK: char = '\u{2713}';
pub const X: char = '\u{2717}';
}
#[track_caller]
pub fn request_repaint_at_rate(ctx: &egui::Context, hz: f32) {
let pd = ctx.input(|i| i.predicted_dt);
if let Ok(d) = std::time::Duration::try_from_secs_f32(1.0 / hz + pd) {
ctx.request_repaint_after(d);
}
}