"""
end
defp validate!(assigns) do
validate_dom_value!(assigns.id, "checkbox id")
validate_name!(assigns.name)
validate_dom_value!(assigns.value, "checkbox value")
if assigns.label != nil, do: validate_label!(assigns.label)
if assigns.label == nil and assigns.inner_block == [],
do: raise(ArgumentError, "checkbox requires a non-blank label or inner content")
if length(assigns.inner_block) > 1,
do: raise(ArgumentError, "checkbox accepts at most one inner content slot")
if length(assigns.description) > 1,
do: raise(ArgumentError, "checkbox accepts at most one description")
if length(assigns.error) > 1, do: raise(ArgumentError, "checkbox accepts at most one error")
end
defp validate_dom_value!(value, name) when is_binary(value) do
if value == "" or String.contains?(value, <<0>>) or Regex.match?(~r/[\t\n\f\r ]/, value),
do:
raise(ArgumentError, "#{name} must be a non-empty string without ASCII whitespace or NUL")
end
defp validate_dom_value!(_, name), do: raise(ArgumentError, "#{name} must be a string")
defp validate_name!(name) when is_binary(name) do
if String.trim(name) == "" or String.contains?(name, <<0>>),
do: raise(ArgumentError, "checkbox name must be non-blank and contain no NUL")
end
defp validate_name!(_), do: raise(ArgumentError, "checkbox name must be a string")
defp validate_label!(label) when is_binary(label) do
if String.trim(label) == "", do: raise(ArgumentError, "checkbox label must be non-blank")
end
defp validate_label!(_), do: raise(ArgumentError, "checkbox label must be a non-blank string")
defp describedby(assigns) do
Enum.join(
Enum.reject(
[
assigns.description != [] && assigns.id <> "-description",
assigns.invalid && assigns.error != [] && assigns.id <> "-error"
],
&(&1 == false)
),
" "
)
|> blank_to_nil()
end
defp blank_to_nil(""), do: nil
defp blank_to_nil(value), do: value
end