Packages
moon
2.79.3
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/examples_list.ex
defmodule MoonWeb.Components.ExamplesList do
@moduledoc false
use Moon.StatelessComponent
alias MoonWeb.Components.ExampleAndCode
import Moon.Helpers.MoonRender, only: [moon: 1]
prop(examples, :list, default: [])
def render(assigns) do
~F"""
{#for module <- @examples}
<ExampleAndCode title={title(module)} id={"example-#{module}"}>
<:note>{(Kernel.function_exported?(module, :note, 0) && module.note()) || ""}</:note>
<:example><.moon {=module} id={"example-contents-#{module}"} /></:example>
<:code>{(Kernel.function_exported?(module, :code, 0) && module.code()) || ""}</:code>
</ExampleAndCode>
{/for}
"""
end
defp title(module) do
"#{module}"
|> String.split(".")
|> Enum.at(-1)
|> String.replace(~r/([a-z])([A-Z])/, "\\1 \\2")
|> String.downcase()
|> String.capitalize()
end
end