Skip to main content

priv/registry/cn.json

{
  "files": [
    {
      "content": "defmodule Shadix.Cn do\n  @moduledoc \"\"\"\n  Class-name composition for Shadix components.\n\n  `cn/1` flattens a list of class values and joins the truthy, non-empty ones\n  with single spaces. It does NOT resolve conflicting Tailwind utilities — that\n  is handled by Tailwind v4 cascade layers, so a caller's class always wins over\n  a component default regardless of order.\n  \"\"\"\n\n  @doc \"\"\"\n  Joins a (possibly nested) list of class values into a single class string,\n  dropping `nil`, `false`, and empty strings.\n\n      iex> Shadix.Cn.cn([\"px-4\", nil, \"font-medium\"])\n      \"px-4 font-medium\"\n  \"\"\"\n  @spec cn(list()) :: String.t()\n  def cn(classes) when is_list(classes) do\n    classes\n    |> List.flatten()\n    |> Enum.filter(fn c -> c && c != \"\" end)\n    |> Enum.join(\" \")\n  end\nend\n",
      "path": "cn.ex"
    }
  ],
  "hooks": [],
  "name": "cn",
  "npm_deps": [],
  "registry_deps": []
}