Module Component

type part = {
  1. kind : string;
  2. height : float -> float;
  3. natural : (float * float) option;
  4. draw : Widget.box -> active:bool -> Playground.shape list;
  5. input : Playground.computer -> Widget.box -> part;
  6. menu : string list;
  7. command : string -> part;
  8. save : unit -> string;
}
type registry = (string * (string -> part)) list
val load : registry -> kind:string -> string -> part
val placeholder : kind:string -> string -> part
val fitted_height : scaled:bool -> part -> float -> float
val draw_in : scaled:bool -> part -> Widget.box -> active:bool -> Playground.shape list
val input_in : scaled:bool -> part -> Playground.computer -> Widget.box -> part