diff --git a/dev.exs b/dev.exs
index 3245d67..ab0fc9b 100644
--- a/dev.exs
+++ b/dev.exs
@@ -46,6 +46,7 @@ end
Application.ensure_all_started(:os_mon)
Application.put_env(:phoenix, :serve_endpoints, true)
+ :erlang.system_flag(:backtrace_depth, 100)
Task.start(fn ->
children = [
diff --git a/lib/ash_admin/components/resource/form.ex b/lib/ash_admin/components/resource/form.ex
index b444772..974ef22 100644
--- a/lib/ash_admin/components/resource/form.ex
+++ b/lib/ash_admin/components/resource/form.ex
@@ -1045,17 +1045,75 @@ defmodule AshAdmin.Components.Resource.Form do
) %>
+ <% Ash.Type.embedded_type?(@attribute.type) && match?([%AshPhoenix.Form{} | _], @value) -> %>
+ <%= for inner_form <- Enum.map(@value, &to_form/1) do %>
+ <.input
+ :for={kv <- inner_form.hidden}
+ name={inner_form.name <> "[#{elem(kv, 0)}]"}
+ value={elem(kv, 1)}
+ type="hidden"
+ />
+
+
+ <%= render_attributes(
+ assigns,
+ inner_form.source.resource,
+ inner_form.source.source.action,
+ %{
+ inner_form
+ | id: @id || @form.id <> "_#{@attribute.name}",
+ name: @name || @form.name <> "[#{@attribute.name}]"
+ }
+ ) %>
+ <% end %>
+
+ <% Ash.Type.embedded_type?(@attribute.type) && match?(%AshPhoenix.Form{}, @value) -> %>
+ <% inner_form = to_form(@value) %>
+ <.input
+ :for={kv <- inner_form.hidden}
+ name={inner_form.name <> "[#{elem(kv, 0)}]"}
+ value={elem(kv, 1)}
+ type="hidden"
+ />
+ <%= render_attributes(
+ assigns,
+ inner_form.source.resource,
+ inner_form.source.source.action,
+ %{ inner_form |
+ id: @id || @form.id <> "_#{@attribute.name}",
+ name: @name || @form.name <> "[#{@attribute.name}]"
+ }
+ ) %>
<% Ash.Type.embedded_type?(@attribute.type) -> %>
<.inputs_for :let={inner_form} field={@form[@attribute.name]}>
<.input
@@ -1086,13 +1144,13 @@ defmodule AshAdmin.Components.Resource.Form do
) %>