JobyKit.DaisyCatalogue (JobyKit v0.3.2)

Copy Markdown View Source

The canonical daisyUI primitive catalogue — every component daisy ships, organized by daisy's own categories.

This is host-agnostic reference data. Each entry has a stable atom :id, the daisy class string, a default status (:available for normal primitives or :reference for ones that are listed for awareness only), and an optional note.

daisyUI version

The catalogue describes daisyUI 5.7.16 (see daisy_version/0). Entries introduced after 5.0 carry a :since key and say so in their note — a host pinned to an older daisy bundle will find those classes absent from its CSS. assets/vendor/daisyui.js is vendored per host, so check the host's own bundle before reaching for a :since entry.

Hosts that have wrapped a primitive declare it via daisy_overrides/0 on their manifest module:

def daisy_overrides, do: %{
  button: %{wrapper: "<.button>", anchor: "#design-button"},
  badge:  %{wrapper: "<.badge>",  anchor: "#design-badge"}
}

The merged/1 function applies those overrides to flip the matching entries to :wrapped and attach the wrapper label + anchor link.

Summary

Functions

Static catalogue with default statuses; no host-specific overrides applied.

The daisyUI release this catalogue was verified against.

Renders the small live-demo for a daisy primitive, dispatched on its :id.

Returns the daisyUI documentation URL for a primitive.

Returns the catalogue with host overrides applied.

Slug helper: turns a category or component name into a stable URL fragment.

Functions

categories()

Static catalogue with default statuses; no host-specific overrides applied.

daisy_version()

The daisyUI release this catalogue was verified against.

Hosts vendor their own assets/vendor/daisyui.js, so this is the version the catalogue describes, not necessarily the one a given app ships. Compare the two before trusting a :since entry.

demo(assigns)

Renders the small live-demo for a daisy primitive, dispatched on its :id.

Used inside each catalogue card so consumers see a working example beside the class string.

Attributes

  • id (:atom) (required)

docs_url(component)

Returns the daisyUI documentation URL for a primitive.

Pass a catalogue entry to honour its :docs_slug; passing a bare name derives the slug from the display name, which is right for most entries but 404s wherever our label differs from daisy's URL (e.g. "Chat bubble" → /components/chat/). Prefer the entry form.

merged(manifest_module)

Returns the catalogue with host overrides applied.

Walks the manifest module's daisy_overrides/0 map (a %{id => %{wrapper, anchor}} mapping) and flips matching entries from default_status to :wrapped, attaching the wrapper label and anchor for cross-linking.

slug(name)

Slug helper: turns a category or component name into a stable URL fragment.