{
"files": [
{
"content": "defmodule Shadix.Components.Input do\n @moduledoc \"\"\"\n Input component translated from shadcn/ui (new-york-v4).\n\n Renders a void `<input>` element with `data-slot=\"input\"`. No variants.\n Caller-supplied `class` is appended last; Tailwind cascade layers ensure it\n wins over the defaults.\n \"\"\"\n use Phoenix.Component\n\n import Shadix.Cn\n\n @base \"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\"\n\n attr(:type, :string, default: \"text\")\n attr(:class, :string, default: nil)\n\n attr(:rest, :global,\n include:\n ~w(name value placeholder disabled required readonly autocomplete autofocus min max step pattern inputmode maxlength minlength multiple size list form)\n )\n\n def input(assigns) do\n class = cn([@base, assigns.class])\n assigns = assign(assigns, :computed_class, class)\n\n ~H\"\"\"\n <input type={@type} data-slot=\"input\" class={@computed_class} {@rest} />\n \"\"\"\n end\nend\n",
"path": "input.ex"
}
],
"hooks": [],
"name": "input",
"npm_deps": [],
"registry_deps": [
"cn"
]
}