# Mishka Chelekom v0.0.9-beta.2 - Table of Contents

> Mishka Chelekom is a fully featured components and UI kit library for Phoenix & Phoenix LiveView

## Pages

- [MishkaChelekom](readme.md)
- [🤖 MCP Server for AI Tools](mcp.md)
- [Changelog for MishkaChelekom 0.0.9](changelog.md)

## Modules

- [MishkaChelekom](MishkaChelekom.md)
- [MishkaChelekom.CSS](MishkaChelekom.CSS.md): Tailwind-aware class composition with a **swappable merge seam** (Layer 3).
- [MishkaChelekom.CmsBundle.Discriminators](MishkaChelekom.CmsBundle.Discriminators.md): 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.
- [MishkaChelekom.CmsBundle.Heex](MishkaChelekom.CmsBundle.Heex.md): HEEx parsing for the v3 bundle exporter. One public surface for
three jobs
- [MishkaChelekom.CmsBundleExporter](MishkaChelekom.CmsBundleExporter.md): 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`).
- [MishkaChelekom.Config](MishkaChelekom.Config.md): Handles configuration for Mishka Chelekom components.
Manages user settings including prefixes, CSS variables, and component generation options.

- [MishkaChelekom.DemoAssignsExtractor](MishkaChelekom.DemoAssignsExtractor.md): Extract initial-render assigns from a demo `<comp>_live.ex` file.
- [MishkaChelekom.Generators.Core](MishkaChelekom.Generators.Core.md): Shared generator plumbing used by the styled (`mix mishka.ui.gen.component(s)`) and
headless (`mix mishka.ui.gen.headless`) tasks.
- [MishkaChelekom.Kit](MishkaChelekom.Kit.md): 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.
- [MishkaChelekom.Kit.Catalog](MishkaChelekom.Kit.Catalog.md): 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`.

- [MishkaChelekom.Kit.Dsl](MishkaChelekom.Kit.Dsl.md): 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.
- [MishkaChelekom.Kit.Entities.Customize](MishkaChelekom.Kit.Entities.Customize.md): 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.
- [MishkaChelekom.Kit.Entities.Part](MishkaChelekom.Kit.Entities.Part.md): Entity struct for a **headless part rule** inside a `customize`:
`part :trigger, "…"` → `%Part{name: :trigger, classes: "…"}`.
- [MishkaChelekom.Kit.Entities.Rule](MishkaChelekom.Kit.Entities.Rule.md): Entity struct for a **styled dimension rule** inside a `customize`:
`color :brand, "…"` → `%Rule{attr: :color, value: :brand, classes: "…"}`.
- [MishkaChelekom.Kit.Info](MishkaChelekom.Kit.Info.md): Introspection for `MishkaChelekom.Kit` modules.
- [MishkaChelekom.Kit.Runtime](MishkaChelekom.Kit.Runtime.md): 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
- [MishkaChelekom.Kit.Transformers.Generate](MishkaChelekom.Kit.Transformers.Generate.md): 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.

- [MishkaChelekom.Kit.Verifiers.Catalog](MishkaChelekom.Kit.Verifiers.Catalog.md): Compile-time checks against the real Mishka catalog (via `MishkaChelekom.Kit.Catalog`):
  * `from:` must be a real component of the right kind (styled vs headless, inferred from the
    rules), with a "did you mean?" suggestion — skipped when a custom `components`/`headless`
    namespace is configured (those modules are the user's own);
  * no two `customize`s may generate the same component name.
- [MishkaChelekom.Kit.Verifiers.Rules](MishkaChelekom.Kit.Verifiers.Rules.md): Compile-time guards for each `customize`:
  * it must declare at least one `color`/`variant`/…/`part` rule (else it's a no-op);
  * it may not mix styled rules (`color`/`variant`/…) with a `part` rule — that would mean
    customizing a styled and a headless component at once.
- [MishkaChelekom.MCP.ComponentConfig](MishkaChelekom.MCP.ComponentConfig.md): Reads component configurations from priv/components/*.exs files.
- [MishkaChelekom.MCP.PathHelper](MishkaChelekom.MCP.PathHelper.md): Helper module for resolving file paths that works both when:
1. Running directly inside the mishka_chelekom library (development/testing)
2. Installed as a dependency in a user's Phoenix project
- [MishkaChelekom.MCP.Resources.GetConfig](MishkaChelekom.MCP.Resources.GetConfig.md): Read the current Mishka Chelekom configuration from the user's project.
- [MishkaChelekom.MCP.Resources.ListColors](MishkaChelekom.MCP.Resources.ListColors.md): List all available color variants for Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListComponents](MishkaChelekom.MCP.Resources.ListComponents.md): List all available Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListCssVariables](MishkaChelekom.MCP.Resources.ListCssVariables.md): List all available CSS variables that can be overridden in Mishka Chelekom.
- [MishkaChelekom.MCP.Resources.ListDependencies](MishkaChelekom.MCP.Resources.ListDependencies.md): List all component dependencies for Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListHeadlessComponents](MishkaChelekom.MCP.Resources.ListHeadlessComponents.md): 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.

- [MishkaChelekom.MCP.Resources.ListScripts](MishkaChelekom.MCP.Resources.ListScripts.md): List all JavaScript dependencies for Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListSizes](MishkaChelekom.MCP.Resources.ListSizes.md): List all available size options for Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListSpaces](MishkaChelekom.MCP.Resources.ListSpaces.md): List all available space options for Mishka Chelekom components.
- [MishkaChelekom.MCP.Resources.ListVariants](MishkaChelekom.MCP.Resources.ListVariants.md): List all available style variants for Mishka Chelekom components.
- [MishkaChelekom.MCP.Router](MishkaChelekom.MCP.Router.md): HTTP Router for the Mishka Chelekom MCP Server.
- [MishkaChelekom.MCP.Server](MishkaChelekom.MCP.Server.md): MCP Server for Mishka Chelekom component library.
- [MishkaChelekom.MCP.Supervisor](MishkaChelekom.MCP.Supervisor.md): Supervisor for the Mishka Chelekom MCP Server.
- [MishkaChelekom.MCP.Tools.GenerateComponent](MishkaChelekom.MCP.Tools.GenerateComponent.md): Generate a Mishka Chelekom component with specific customization options.
- [MishkaChelekom.MCP.Tools.GenerateComponents](MishkaChelekom.MCP.Tools.GenerateComponents.md): Generate mix commands for creating multiple Mishka Chelekom components at once.
- [MishkaChelekom.MCP.Tools.GetComponentInfo](MishkaChelekom.MCP.Tools.GetComponentInfo.md): Get detailed information about a specific Mishka Chelekom component.
- [MishkaChelekom.MCP.Tools.GetDocs](MishkaChelekom.MCP.Tools.GetDocs.md): Fetch documentation from the Mishka Chelekom website.
- [MishkaChelekom.MCP.Tools.GetExample](MishkaChelekom.MCP.Tools.GetExample.md): Get HEEx code examples for a Mishka Chelekom component.
- [MishkaChelekom.MCP.Tools.GetJsHookInfo](MishkaChelekom.MCP.Tools.GetJsHookInfo.md): Get information about JavaScript hooks used by Mishka Chelekom components.
- [MishkaChelekom.MCP.Tools.GetMixTaskInfo](MishkaChelekom.MCP.Tools.GetMixTaskInfo.md): Get information about Mishka Chelekom Mix tasks.
- [MishkaChelekom.MCP.Tools.SearchComponents](MishkaChelekom.MCP.Tools.SearchComponents.md): Search Mishka Chelekom components by name, category, or functionality.
- [MishkaChelekom.MCP.Tools.UninstallComponent](MishkaChelekom.MCP.Tools.UninstallComponent.md): Generate mix commands for uninstalling Mishka Chelekom components.
- [MishkaChelekom.MCP.Tools.UpdateConfig](MishkaChelekom.MCP.Tools.UpdateConfig.md): Generate configuration updates for Mishka Chelekom.
- [MishkaChelekom.MCP.Tools.ValidateConfig](MishkaChelekom.MCP.Tools.ValidateConfig.md): Validate the Mishka Chelekom configuration file.
- [MishkaChelekom.Overrides](MishkaChelekom.Overrides.md): Centralized, Pyro-style **overrides** for component part classes (Layer 3, opt-in).
- [MishkaChelekom.Presets.Bordered](MishkaChelekom.Presets.Bordered.md): A bordered preset — emphasizes borders over shadows. Example/starting point.
- [MishkaChelekom.Presets.Default](MishkaChelekom.Presets.Default.md): The default theme preset — no overrides. Components render with their own generated classes.
Conventionally appended last in `config :mishka_chelekom, :overrides`.

- [MishkaChelekom.Presets.Flat](MishkaChelekom.Presets.Flat.md): A flat preset — drops shadows and heavy borders. Example/starting point.
- [MishkaChelekom.SimpleCSSUtilities](MishkaChelekom.SimpleCSSUtilities.md): Pure Elixir CSS parser for handling imports and CSS manipulation.
Supports Tailwind CSS 4.x directives and import management.

## Mix Tasks

- [mix mishka.assets.deps](Mix.Tasks.Mishka.Assets.Deps.md): A Mix Task for installing and configuring JS dependencies for Phoenix
- [mix mishka.mcp.server](Mix.Tasks.Mishka.Mcp.Server.md): Starts the Mishka Chelekom MCP Server.
- [mix mishka.mcp.setup](Mix.Tasks.Mishka.Mcp.Setup.md): Sets up the Mishka Chelekom MCP Server in your Phoenix application.
- [mix mishka.ui.add](Mix.Tasks.Mishka.Ui.Add.md): A Mix Task for generating and configuring Phoenix components from a repo
- [mix mishka.ui.add.files](Mix.Tasks.Mishka.Ui.Add.Files.md)
- [mix mishka.ui.add.files.args](Mix.Tasks.Mishka.Ui.Add.Files.Args.md)
- [mix mishka.ui.css.config](Mix.Tasks.Mishka.Ui.Css.Config.md): Manages CSS configuration for Mishka Chelekom components
- [mix mishka.ui.export](Mix.Tasks.Mishka.Ui.Export.md): A Mix Task for generating a JSON file from a directory of components
- [mix mishka.ui.gen.component](Mix.Tasks.Mishka.Ui.Gen.Component.md): A Mix Task for generating and configuring Phoenix components
- [mix mishka.ui.gen.components](Mix.Tasks.Mishka.Ui.Gen.Components.md): A Mix Task for generating and configuring multi components of Phoenix
- [mix mishka.ui.gen.headless](Mix.Tasks.Mishka.Ui.Gen.Headless.md): Generate an unstyled (headless) Phoenix component: ARIA + slots + behavior hook
- [mix mishka.ui.gen.headless.components](Mix.Tasks.Mishka.Ui.Gen.Headless.Components.md): Generate multiple (or all) headless components at once
- [mix mishka.ui.uninstall](Mix.Tasks.Mishka.Ui.Uninstall.md): A Mix Task for uninstalling Mishka Chelekom components
- [mix mishka_chelekom.install](Mix.Tasks.MishkaChelekom.Install.md): This task helps you easily install the Mishka Chelekom library directly using Igniter.

