Liking cljdoc? Tell your friends :D

charm.components.help

Help component for displaying key bindings.

Usage: (def bindings [{:key "j/k" :desc "up/down"} {:key "q" :desc "quit"}]) (def my-help (help bindings))

;; In view function: (help-view my-help)

Help component for displaying key bindings.

Usage:
  (def bindings [{:key "j/k" :desc "up/down"}
                 {:key "q" :desc "quit"}])
  (def my-help (help bindings))

  ;; In view function:
  (help-view my-help)
raw docstring

charm.components.list

Scrollable list component with item selection.

Usage: (def my-list (item-list ["Apple" "Banana" "Cherry"]))

;; In update function: (list-update my-list msg)

;; In view function: (list-view my-list)

Scrollable list component with item selection.

Usage:
  (def my-list (item-list ["Apple" "Banana" "Cherry"]))

  ;; In update function:
  (list-update my-list msg)

  ;; In view function:
  (list-view my-list)
raw docstring

charm.components.paginator

Pagination component for displaying page indicators.

Usage: (def pager (paginator :total-pages 5))

;; In update function: (paginator-update pager msg)

;; In view function: (paginator-view pager)

Pagination component for displaying page indicators.

Usage:
  (def pager (paginator :total-pages 5))

  ;; In update function:
  (paginator-update pager msg)

  ;; In view function:
  (paginator-view pager)
raw docstring

charm.components.progress

Progress bar component.

Usage: (def my-progress (progress-bar :width 40))

;; Update progress (0.0 to 1.0): (set-progress my-progress 0.5)

;; In view function: (progress-view my-progress)

Progress bar component.

Usage:
  (def my-progress (progress-bar :width 40))

  ;; Update progress (0.0 to 1.0):
  (set-progress my-progress 0.5)

  ;; In view function:
  (progress-view my-progress)
raw docstring

charm.components.spinner

Animated spinner component.

Usage: (def my-spinner (spinner :dots))

;; In update function: (spinner-update my-spinner msg)

;; In view function: (spinner-view my-spinner)

Animated spinner component.

Usage:
  (def my-spinner (spinner :dots))

  ;; In update function:
  (spinner-update my-spinner msg)

  ;; In view function:
  (spinner-view my-spinner)
raw docstring

charm.components.table

Table component with aligned columns, optional borders, and row cursor.

Usage: (def tbl (table [{:title "Name" :width 20} {:title "Value" :width 30}] [["foo" "bar"] ["baz" "qux"]] :cursor 0))

;; In update function: (table-update tbl msg)

;; In view function: (table-view tbl)

Table component with aligned columns, optional borders, and row cursor.

Usage:
  (def tbl (table [{:title "Name" :width 20} {:title "Value" :width 30}]
                  [["foo" "bar"] ["baz" "qux"]]
                  :cursor 0))

  ;; In update function:
  (table-update tbl msg)

  ;; In view function:
  (table-view tbl)
raw docstring

charm.components.text-input

Text input component with cursor movement and editing.

Usage: (def my-input (text-input :prompt "Name: "))

;; In update function: (text-input-update my-input msg)

;; In view function: (text-input-view my-input)

Text input component with cursor movement and editing.

Usage:
  (def my-input (text-input :prompt "Name: "))

  ;; In update function:
  (text-input-update my-input msg)

  ;; In view function:
  (text-input-view my-input)
raw docstring

charm.components.timer

Countdown timer component.

Usage: (def my-timer (timer :timeout 60000)) ; 60 seconds

;; In update function: (timer-update my-timer msg)

;; In view function: (timer-view my-timer)

Countdown timer component.

Usage:
  (def my-timer (timer :timeout 60000))  ; 60 seconds

  ;; In update function:
  (timer-update my-timer msg)

  ;; In view function:
  (timer-view my-timer)
raw docstring

charm.components.viewport

Scrollable text area component.

Displays a window into pre-rendered (possibly styled) text content.

Usage: (def vp (viewport "Long text content..." :height 10))

;; In update function: (viewport-update vp msg)

;; In view function: (viewport-view vp)

Scrollable text area component.

Displays a window into pre-rendered (possibly styled) text content.

Usage:
  (def vp (viewport "Long text content..." :height 10))

  ;; In update function:
  (viewport-update vp msg)

  ;; In view function:
  (viewport-view vp)
raw docstring

charm.message

Message types for charm.clj TUI applications.

Messages are plain maps with a :type key for easy pattern matching. Use factory functions to create messages and predicates to check types.

Message types for charm.clj TUI applications.

Messages are plain maps with a :type key for easy pattern matching.
Use factory functions to create messages and predicates to check types.
raw docstring

charm.program

The Elm Architecture event loop for TUI applications.

A program consists of:

  • init: Initial state and optional startup command
  • update: (state, msg) -> [new-state, cmd]
  • view: state -> string

Commands are functions that produce messages asynchronously.

The Elm Architecture event loop for TUI applications.

A program consists of:
- init: Initial state and optional startup command
- update: (state, msg) -> [new-state, cmd]
- view: state -> string

Commands are functions that produce messages asynchronously.
raw docstring

charm.style.border

Border rendering for styled boxes.

Provides predefined border styles and functions for rendering borders around text content.

Border rendering for styled boxes.

Provides predefined border styles and functions for
rendering borders around text content.
raw docstring

charm.style.core

Main styling API.

Create styles as maps and apply them to text.

Example: (def my-style (style :fg (rgb 255 0 0) :bold true :padding [1 2])) (render my-style "Hello!") ; => styled text

Main styling API.

Create styles as maps and apply them to text.

Example:
  (def my-style (style :fg (rgb 255 0 0) :bold true :padding [1 2]))
  (render my-style "Hello!")  ; => styled text
raw docstring

charm.style.overlay

Layout utility for compositing a floating panel on top of base content.

Not a stateful component - just pure functions for overlay placement.

Usage: (place-overlay base-text overlay-text 5 3) (center-overlay base-text overlay-text)

Layout utility for compositing a floating panel on top of base content.

Not a stateful component - just pure functions for overlay placement.

Usage:
  (place-overlay base-text overlay-text 5 3)
  (center-overlay base-text overlay-text)
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close