1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Vim-style modal keybinding engine for buffr.
//!
//! Two-layer modal model:
//!
//! - **Page mode** ([`PageMode`]) — scroll, tab switch, omnibar, hint mode,
//! command line. Owned by this crate.
//! - **Insert mode** — typing in `<textarea>` / `contenteditable` / form
//! fields. Delegates to [`hjkl_engine::Editor`] against a mirrored
//! [`hjkl_buffer::Buffer`] synced to the DOM via CEF.
//!
//! See `PLAN.md` "Edit-mode integration with `hjkl-*`" for the full
//! data flow.
//!
//! # Layout
//!
//! - [`actions`] — [`PageAction`] / [`PageMode`] / [`Mode`]
//! - [`key`] — vim-notation parser → [`KeyChord`] / [`Modifiers`]
//! - [`keymap`] — mode-scoped trie + ambiguity resolution
//! - [`edit_mode`] — [`EditSession`] wrapping `hjkl_engine::Editor`
//! - [`host`] — [`BuffrHost`] adapter implementing
//! `hjkl_engine::Host`
/// winit `KeyEvent` → [`KeyChord`] adapter. Gated behind the `winit`
/// Cargo feature; the engine itself stays winit-agnostic.
pub use ;
pub use EditSession;
pub use ;
pub use ;
pub use ;
pub use ;
// Re-export hjkl_engine types needed by the winit key-routing path in
// `apps/buffr/src/main.rs`. `buffr-modal` owns the hjkl_engine dep so
// the app binary doesn't need its own direct dependency.
pub use ;
pub use ;