Packages
moon
2.90.1
2.90.5
retired
2.90.4
2.90.3
2.90.2
2.90.1
2.90.0
2.89.4
2.89.1
2.89.0
2.88.0
2.87.11
2.87.10
2.87.9
2.87.8
2.87.7
2.87.6
2.87.5
2.87.4
2.87.3
2.87.2
2.87.1
2.87.0
2.86.1
2.86.0
2.85.1
2.85.0
2.84.0
2.83.0
2.82.0
2.81.4
2.81.3
2.81.2
2.81.1
2.81.0
2.80.2
2.80.1
2.80.0
2.79.13
2.79.12
2.79.11
2.79.10
2.79.9
2.79.8
2.79.7
2.79.6
2.79.5
2.79.4
2.79.3
2.79.2
2.79.1
2.79.0
2.78.4
2.78.3
2.78.2
2.78.1
2.78.0
2.77.0
2.76.5
2.76.4
2.76.3
2.76.2
2.76.1
2.76.0
2.75.0
2.74.1
2.74.0
2.73.8
2.73.7
2.73.6
2.73.5
2.73.4
2.73.3
2.73.2
2.73.1
2.73.0
2.72.5
2.72.4
2.72.3
2.72.2
2.72.1
2.72.0
2.71.1
2.71.0
2.70.0
2.69.2
2.69.1
2.69.0
2.68.11
2.68.10
Components-based design system written in elixir
Current section
Files
Jump to
Current section
Files
lib/moon_web/components/page.ex
defmodule MoonWeb.Components.Page do
@moduledoc false
use MoonWeb, :stateless_component
alias MoonWeb.Components.Breadcrumbs
alias MoonWeb.Components.Footer
alias MoonWeb.Components.Header
alias MoonWeb.Components.LeftMenu
alias MoonWeb.Components.ThemesSelect
prop(class, :css_class)
prop(breadcrumbs, :any)
prop(theme_name, :any, default: "theme-moon-light")
prop(direction, :string, values: ["ltr", "rtl"], default: "ltr")
prop(active_page, :module)
prop(hide_left_menu, :boolean, default: false)
slot(default)
def render(assigns) do
~F"""
<div
role="main"
class={"pt-16 lg:pt-0 bg-gohan text-bulma flex", @class, @theme_name}
dir={@direction}
>
<LeftMenu active_page={@active_page} hide_items is_hidden={@hide_left_menu} />
<Header id="page_header" />
<div class="min-h-screen lg:ms-80 bg-goku flex-1 w-0 flex flex-col ltr:lg:rounded-tl-3xl rtl:lg:rounded-tr-3xl px-5 xl:px-20 2xl:px-32 lg:pt-12 lg:pb-52">
<div class="flex flex-col grow max-w-screen-xl">
<Breadcrumbs class="pb-12 hidden lg:block" :if={@breadcrumbs} breadcrumbs={@breadcrumbs} />
<div class="flex flex-col gap-12 flex-1 relative focus:outline-none">
<#slot />
</div>
<Footer />
<ThemesSelect {=@theme_name} {=@direction} />
</div>
</div>
</div>
"""
end
end