defmodule Moon.Components.Select.SingleSelect do
@moduledoc false
use Moon.StatefulComponent
alias Moon.Autolayouts.PullAside
alias Moon.Autolayouts.TopToDown
alias Moon.Components.FieldBorder
alias Moon.Components.FieldLabel
alias Moon.Components.Popover
alias Moon.Components.Select.Dropdown
alias Moon.Components.Select.Helpers, as: SelectHelpers
alias Moon.Components.Select.SingleSelect.Value.SelectedValue
alias Moon.Components.Select.SingleSelect.HintText
alias Moon.Components.ErrorTag
prop(label, :string)
prop(options, :any, default: [])
prop(value, :any)
prop(disabled, :boolean, default: false)
prop(size, :string, values: ~w(sm md lg xl), default: "md")
prop(popover_placement, :string, default: "bottom-start")
prop(popover_class, :string)
prop(placeholder, :string)
prop(background_color, :string, values: Moon.colors(), default: "goku")
prop(has_error, :boolean)
prop(use_error_tag, :boolean)
prop(selected_value_class, :css_class, default: "")
prop(searched_options, :any, default: nil)
prop(on_search_change, :event)
prop(search_string, :string, default: nil)
prop(with, :string, default: nil)
prop(search_min_width, :css_class, default: "min-w-[144px]")
data(open, :boolean, default: false)
data(form, :form, from_context: {Surface.Components.Form, :form})
data(field, :atom, from_context: {Surface.Components.Form.Field, :field})
slot(hint_text_slot)
def render(assigns) do
~F"""
{#if @size != "xl"}