diff --git a/lib/ash_hq_web/components/doc_sidebar.ex b/lib/ash_hq_web/components/doc_sidebar.ex
index eb7de5e..a413595 100644
--- a/lib/ash_hq_web/components/doc_sidebar.ex
+++ b/lib/ash_hq_web/components/doc_sidebar.ex
@@ -4,6 +4,7 @@ defmodule AshHqWeb.Components.DocSidebar do
alias AshHqWeb.DocRoutes
alias Surface.Components.LivePatch
+ alias Phoenix.LiveView.JS
prop class, :css_class, default: ""
prop libraries, :list, required: true
@@ -47,31 +48,39 @@ defmodule AshHqWeb.Components.DocSidebar do
{#for {category, guides_by_library} <- guides_by_category_and_library(@libraries, @selected_versions)}
-
- {#for {library, guides} <- guides_by_library}
-
- {library}
-
- {#for guide <- guides}
- -
-
-
- {guide.name}
-
-
- {/for}
-
-
- {/for}
+
+ {#for {library, guides} <- guides_by_library}
+
+ {library}
+
+ {#for guide <- guides}
+ -
+
+
+ {guide.name}
+
+
+ {/for}
+
+
+ {/for}
+
{/for}
Reference
@@ -79,41 +88,55 @@ defmodule AshHqWeb.Components.DocSidebar do
{#if !Enum.empty?(get_extensions(@libraries, @selected_versions))}
-
- Extensions
+
+
+
+
+
+
+
+ Extensions
{/if}
- {#for {library, extensions} <- get_extensions(@libraries, @selected_versions)}
-
- {library}
-
- {#for extension <- extensions}
- -
-
- {render_icon(assigns, extension.type)}
- {extension.name}
-
- {#if @extension && @extension.id == extension.id && !Enum.empty?(extension.dsls)}
- {render_dsls(assigns, extension.dsls, [])}
- {/if}
-
- {/for}
-
-
- {/for}
+
+ {#for {library, extensions} <- get_extensions(@libraries, @selected_versions)}
+
+ {library}
+
+ {#for extension <- extensions}
+ -
+
+ {render_icon(assigns, extension.type)}
+ {extension.name}
+
+ {#if @extension && @extension.id == extension.id && !Enum.empty?(extension.dsls)}
+ {render_dsls(assigns, extension.dsls, [])}
+ {/if}
+
+ {/for}
+
+
+ {/for}
+
-
- Modules
+
+
+
+
+
+
+
+ Modules
+
{#for {category, modules} <- modules_by_category(@libraries, @selected_versions)}
{category}
@@ -123,8 +146,7 @@ defmodule AshHqWeb.Components.DocSidebar do
@@ -133,6 +155,7 @@ defmodule AshHqWeb.Components.DocSidebar do
{/for}
{/for}
+
@@ -343,4 +366,11 @@ defmodule AshHqWeb.Components.DocSidebar do
end)
)
end
+
+ defp collapse(id, js \\ %JS{}) do
+ js
+ |> JS.toggle(to: "##{id}", time: 0)
+ |> JS.toggle(to: "##{id}-chevron-down", time: 0)
+ |> JS.toggle(to: "##{id}-chevron-right", time: 0)
+ end
end