Skip to main content

Crate egaku

Crate egaku 

Source
Expand description

Egaku (描く) — pure-logic widget toolkit for pleme-io applications.

Provides reusable UI state machines that operate on abstract geometry without requiring a GPU or windowing system:

  • TextInput: single-line text input with cursor, selection, grapheme-aware editing
  • ScrollView: scroll offset tracking with clamping and fraction
  • ScrollKinetics: fleet-shared momentum/inertia scroll physics (unit-agnostic: lines, pixels, or scroll-ticks) + ScrollKineticsConfig
  • ListView: scrollable item list with keyboard selection
  • TabBar: tab container with wrap-around keyboard navigation
  • SplitPane: resizable horizontal/vertical splits
  • Modal: overlay dialog visibility state
  • FuzzyPicker: generic modal fuzzy-picker (typed FSM) — session/tab switcher, command palette, fuzzy chooser; render-backend-agnostic
  • FocusManager: tab-order focus traversal across widgets
  • KeyMap: configurable keybinding system (generic over action type)
  • Rect / Padding: layout geometry primitives
  • Theme: color, spacing, and font configuration (serde, Nord defaults)

Re-exports§

pub use focus::FocusManager;
pub use input::TextInput;
pub use keymap::KeyCombo;
pub use keymap::KeyMap;
pub use layout::Padding;
pub use layout::Rect;
pub use list::ListView;
pub use modal::Modal;
pub use picker::FuzzyPicker;
pub use picker::PickerEffect;
pub use picker::PickerEvent;
pub use picker::PickerItem;
pub use picker::PickerState;
pub use picker::PickerStep;
pub use picker::PickerView;
pub use scroll::ScrollKinetics;
pub use scroll::ScrollKineticsConfig;
pub use scroll::ScrollView;
pub use split::Orientation;
pub use split::SplitPane;
pub use tabs::TabBar;
pub use theme::Theme;

Modules§

focus
input
keymap
layout
list
modal
picker
FuzzyPicker<T> — the fleet-shared modal fuzzy-picker primitive.
scroll
split
tabs
theme