# Mishka Chelekom v0.0.9 - 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 `_live.ex` file. - [MishkaChelekom.Generators.Assets](MishkaChelekom.Generators.Assets.md): Vendor asset wiring shared by the generator tasks: copying component JS engines into `assets/vendor/`, wiring them into `mishka_components.js` + `app.js`, and installing the styled / headless stylesheets with their `app.css` imports. - [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(.components)`) tasks. - [MishkaChelekom.Generators.ImportMacro](MishkaChelekom.Generators.ImportMacro.md): Generates the `Web.Components.MishkaComponents` import macro for the styled batch task (`mix mishka.ui.gen.components --import`) and, with `--global`, wires it into the web module's `html_helpers/0` in place of the default `CoreComponents` import. - [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 (`.Components.Headless.`), otherwise styled (`.Components.`). 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.gen.kit](Mix.Tasks.Mishka.Ui.Gen.Kit.md): Vendor the Mishka Chelekom Kit engine into your app (no runtime dependency) - [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.