defmodule RaxolWeb.CoreComponents do @moduledoc """ Provides core UI components for the Raxol web interface. """ use Phoenix.Component # import Phoenix.HTML # use PhoenixHTMLHelpers, except: [label: 1] @doc """ Renders a button with the given text and options. """ attr :type, :string, default: "button" attr :class, :string, default: nil attr :disabled, :boolean, default: false attr :rest, :global, include: ~w(form name value) slot(:inner_block, required: true) def button(assigns) do ~H""" """ end @doc """ Renders a form input with the given type and options. """ attr :type, :string, default: "text" attr :name, :string, required: true attr(:value, :any) attr :placeholder, :string, default: nil attr :class, :string, default: nil attr :disabled, :boolean, default: false attr :rest, :global, include: ~w(autocomplete form required) def input(assigns) do ~H""" """ end @doc """ Renders a label for a form input. """ attr :for, :string, required: true attr :class, :string, default: nil slot(:inner_block, required: true) def label(assigns) do ~H""" """ end @doc """ Renders a form group with a label and input. """ attr :name, :string, required: true attr :label, :string, required: true attr :type, :string, default: "text" attr(:value, :any) attr :placeholder, :string, default: nil attr :class, :string, default: nil attr :disabled, :boolean, default: false attr :rest, :global, include: ~w(autocomplete form required) def form_group(assigns) do ~H"""