Module Arod_component.Idea

Idea component rendering using htmlit.

module Idea = Bushel.Idea
module Contact = Sortal_schema.Contact
module I = Arod.Icons

Helpers

val heading : ctx:'a -> Bushel.Entry.entry -> Htmlit.El.html

Render a heading for an entry.

Status and Level Descriptions

val status_class : Idea.status -> string
val status_badge : Idea.status -> Htmlit.El.html

Colored status indicator span.

val status_to_long_string : string -> Idea.status -> string
val level_to_long_string : Idea.level -> string
val sups_for : Idea.t -> string

Contact Rendering

val render_contacts : ctx:Arod.Ctx.t -> string list -> Htmlit.El.html
val status_dot : Idea.status -> Htmlit.El.html

Small filled status dot icon with the appropriate status colour class.

val to_html_no_sidenotes : ctx:Arod.Ctx.t -> Idea.t -> Htmlit.El.html

Render an idea as a compact list row for project listings. Uses a coloured dot icon as the bullet; text stays neutral.

Main Rendering Functions

val brief : ctx:Arod__.Arod_ctx.t -> Idea.t -> Htmlit.El.html * (int * bool) option

Brief idea with status/level info.

val full_page : ctx:Arod.Ctx.t -> Idea.t -> Htmlit.El.html * Arod.Md.sidenote list * (string * string) list

Full idea page with structured header and article.

val status_filter_box : total:int -> counts:(int * int * int * int * int) -> Htmlit.El.html

Combined status filter + stats sidebar box.

val compact : ctx:Arod.Ctx.t -> Idea.t -> Htmlit.El.html

Compact idea card for list view.

val ideas_list : ctx:Arod.Ctx.t -> Htmlit.El.html * Htmlit.El.html

Ideas grouped by project with status filter and year heatmap. Returns (article, sidebar).

val for_feed : ctx:Arod__.Arod_ctx.t -> Idea.t -> Htmlit.El.html * (int * bool) option

Idea for feeds.