Modules
Tailwind-aware class composition with a swappable merge seam (Layer 3).
Convert chelekom .eex source into per-helper axis-value clauses
that the MishkaCMS installer uses to narrow installs (e.g. base-only)
without guessing positional-arg semantics.
HEEx parsing for the v3 bundle exporter. One public surface for three jobs
Converts a Mishka Chelekom .exs + .eex source pair into the
final Runtime.Component create-params shape consumed by the
MishkaCMS UI-kit installer (schema mishka.ui_kit.bundle.v3).
Handles configuration for Mishka Chelekom components. Manages user settings including prefixes, CSS variables, and component generation options.
Extract initial-render assigns from a demo <comp>_live.ex file.
Shared generator plumbing used by the styled (mix mishka.ui.gen.component(s)) and
headless (mix mishka.ui.gen.headless) tasks.
One Spark DSL to reuse and customize your Mishka Chelekom components — never to build HTML from scratch. The styled and headless components stay normal components; the Kit is an additive, opt-in layer on top.
Reads the Mishka component catalog from the mishka_chelekom priv dir, for compile-time Kit
validation (the verifier) and to decide whether a customize's from: is a real component before
generating its wrapper. Styled names come from priv/components/*.exs, headless from
priv/headless/*.exs.
The MishkaChelekom.Kit Spark DSL — one verb, customize, to reuse and restyle any existing
Mishka Chelekom component (styled or headless). It never builds HTML from scratch.
Entity struct for one customize — a customization of an EXISTING component. The rules inside
decide which world it targets: color/variant/size/… ⇒ a styled component, part ⇒ a
headless one. Never both.
Entity struct for a headless part rule inside a customize:
part :trigger, "…" → %Part{name: :trigger, classes: "…"}.
Entity struct for a styled dimension rule inside a customize:
color :brand, "…" → %Rule{attr: :color, value: :brand, classes: "…"}.
Introspection for MishkaChelekom.Kit modules.
Runtime support for the wrappers the Kit generates — pure assigns (map) manipulation, so a
wrapper stays a thin delegator to the real component. One transform/2 handles both worlds
Generates each customize's wrapper function from its rules, injected into the Kit module via
Spark.Dsl.Transformer.eval/3. The rules decide the target: part rules ⇒ a headless component
(<Web>.Components.Headless.<From>), otherwise styled (<Web>.Components.<From>). The wrapper
transforms assigns through MishkaChelekom.Kit.Runtime and delegates to the real component.
Compile-time checks against the real Mishka catalog (via MishkaChelekom.Kit.Catalog)
Compile-time guards for each customize
Reads component configurations from priv/components/*.exs files.
Helper module for resolving file paths that works both when
Read the current Mishka Chelekom configuration from the user's project.
List all available color variants for Mishka Chelekom components.
List all available Mishka Chelekom components.
List all available CSS variables that can be overridden in Mishka Chelekom.
List all component dependencies for Mishka Chelekom components.
List the headless (unstyled + ARIA) Mishka Chelekom components, read dynamically from
priv/headless/*.exs. Each entry includes its WAI-ARIA pattern, the JS behavior hooks it
uses, its named-slot anatomy, and the data-* state attributes.
List all JavaScript dependencies for Mishka Chelekom components.
List all available size options for Mishka Chelekom components.
List all available space options for Mishka Chelekom components.
List all available style variants for Mishka Chelekom components.
HTTP Router for the Mishka Chelekom MCP Server.
MCP Server for Mishka Chelekom component library.
Supervisor for the Mishka Chelekom MCP Server.
Generate a Mishka Chelekom component with specific customization options.
Generate mix commands for creating multiple Mishka Chelekom components at once.
Get detailed information about a specific Mishka Chelekom component.
Fetch documentation from the Mishka Chelekom website.
Get HEEx code examples for a Mishka Chelekom component.
Get information about JavaScript hooks used by Mishka Chelekom components.
Get information about Mishka Chelekom Mix tasks.
Search Mishka Chelekom components by name, category, or functionality.
Generate mix commands for uninstalling Mishka Chelekom components.
Generate configuration updates for Mishka Chelekom.
Validate the Mishka Chelekom configuration file.
Centralized, Pyro-style overrides for component part classes (Layer 3, opt-in).
A bordered preset — emphasizes borders over shadows. Example/starting point.
The default theme preset — no overrides. Components render with their own generated classes.
Conventionally appended last in config :mishka_chelekom, :overrides.
A flat preset — drops shadows and heavy borders. Example/starting point.
Pure Elixir CSS parser for handling imports and CSS manipulation. Supports Tailwind CSS 4.x directives and import management.
Mix Tasks
A Mix Task for installing and configuring JS dependencies for Phoenix
Starts the Mishka Chelekom MCP Server.
Sets up the Mishka Chelekom MCP Server in your Phoenix application.
A Mix Task for generating and configuring Phoenix components from a repo
Manages CSS configuration for Mishka Chelekom components
A Mix Task for generating a JSON file from a directory of components
A Mix Task for generating and configuring Phoenix components
A Mix Task for generating and configuring multi components of Phoenix
Generate an unstyled (headless) Phoenix component: ARIA + slots + behavior hook
Generate multiple (or all) headless components at once
A Mix Task for uninstalling Mishka Chelekom components
This task helps you easily install the Mishka Chelekom library directly using Igniter.