open Brr module Js = Js_of_ocaml.Js type t type t' = t val v : unit -> t module O = Bindings.TypedObject (* State *) module rec State : sig include module type of Bindings.State val configuration_prop : unit -> configuration_prop Js.t val creation_prop : unit -> creation_prop Js.t val create : t -> creation_prop Js.t -> editor_state Js.t val fromJSON : t -> configuration_prop Js.t -> Brr.Json.t -> editor_state Js.t val selection_from : selection Js.t -> Model.resolved_pos Js.t val selection_to : selection Js.t -> Model.resolved_pos Js.t val selection_at_start : t-> Model.node Js.t -> selection Js.t val is_selectable : t -> Model.node Js.t -> bool Js.t val node_selection : t -> Model.resolved_pos Js.t -> node_selection Js.t val create_node_selection : t -> Model.node Js.t -> int -> node_selection Js.t val create_text_selection : t -> Model.node Js.t -> int -> text_selection Js.t val cursor : selection Js.t -> Model.resolved_pos Js.t Js.opt val create_str_meta_data : Jstr.t -> 'a meta_data Js.t end (* Editor view *) and View : sig module EditorProps : sig type t end include module type of Bindings.View val direct_editor_props : unit -> direct_editor_props Js.t val editor_view : t -> El.t -> direct_editor_props Js.t -> editor_view Js.t end and Model : sig include module type of Bindings.Model val schema_spec: node_spec Bindings.ordered_map Js.t -> mark_spec Bindings.ordered_map Js.t option -> string option -> schema_spec Js.t val schema : t -> schema_spec Js.t -> schema Js.t module Mark : sig val set_from_mark : t -> mark Js.t -> mark Js.t end module DOMParser : sig type parser val from_schema : t -> schema Js.t -> parser val parse : parser -> El.t -> node Js.t end val empty_fragment : t -> fragment Js.t module Dom_output_spec : sig val v : ?attrs:< .. > -> string -> domOutputSpec Js.t list -> domOutputSpec Js.t (** Hole element inside an output_spec element *) val hole : domOutputSpec Js.t val of_el : Brr.El.t -> domOutputSpec Js.t val of_jstr : Jstr.t -> domOutputSpec Js.t val of_obj : < dom: node Js.t Js.readonly_prop ; contentDOM : node Js.t Js.opt Js.readonly_prop > Js.t -> domOutputSpec Js.t end module ParseRule : sig val tag: Jstr.t -> parse_rule Js.t end end and Transform : sig include module type of Bindings.Transform val offset : t -> int -> step_map Js.t val insertPoint : t -> Model.node Js.t -> pos:int -> Model.node_type Js.t -> int Js.opt end module Commands : sig type t = State.editor_state Js.t -> State.dispatch Js.opt -> bool Js.t val baseKeymap : t' -> (string * t) array val set_block_type : t' -> Model.node_type Js.t -> < .. > Js.t Js.opt -> t val toggle_mark : t' -> Model.mark_type Js.t -> < .. > Js.t Js.opt -> t end module History : sig include module type of Bindings.History val history_prop : unit -> history_prop Js.t val history : t -> history_prop Js.t -> State.plugin Js.t val undo : t -> Commands.t val redo : t -> Commands.t end module Keymap : sig val keymap : t -> (string * Commands.t) array -> State.plugin Js.t end module InputRule : sig type input_rule (** Create a new input rule for the given regExp. *) val create : t -> Js.regExp Js.t -> fn:(State.editor_state Js.t -> Jstr.t Js.js_array Js.t -> from:int -> to_:int -> State.transaction Js.t Js.opt) Js.callback -> input_rule Js.t val to_plugin : t -> input_rule Js.t Js.js_array Js.t -> State.plugin Js.t end module SchemaBasic : sig include module type of Bindings.SchemaBasic val schema : t -> Model.schema Js.t val nodes : t -> nodes Js.t end module SchemaList : sig val add_list_nodes : t -> Model.node_spec Bindings.ordered_map Js.t -> Jstr.t -> Jstr.t option -> Model.node_spec Bindings.ordered_map Js.t end module Menu : sig include module type of Bindings.Menu val menuItemSpec : unit -> menuItemSpec Js.t val menu_item : t -> menuItemSpec Js.t -> menuItem Js.t end (* Example Setup *) module Example : sig include module type of Bindings.Example val options : Model.schema Js.t -> options Js.t val example_setup : t -> options Js.t -> State.plugin Js.t Js.js_array Js.t val buildMenuItems : t -> Model.schema Js.t -> menuItems Js.t end