Packages
phoenix_duskmoon
6.3.1
9.9.2
9.9.1
9.9.0
9.8.0
9.7.1
9.7.0
9.6.4
9.6.3
9.6.2
9.6.1
9.6.0
9.5.4
9.5.3
9.5.2
9.5.1
9.5.0
9.4.3
9.4.2
9.4.1
9.4.0
9.3.0
9.2.0
9.1.4
9.1.3
9.1.1
9.1.1-rc.1
retired
9.0.1
9.0.0-rc.3
9.0.0-rc.2
9.0.0-rc.1
8.0.0
7.2.1
7.2.0
7.1.3
7.1.2
7.1.1
6.3.2
6.3.1
6.3.0
6.2.0
6.1.3
6.1.2
6.1.1
6.1.0
6.0.10
6.0.9
6.0.8
6.0.7
6.0.6
6.0.5
6.0.4
6.0.3
6.0.2
6.0.1
6.0.0
5.2.0-beta.5
5.2.0-beta.4
5.2.0-beta.3
5.2.0-beta.2
5.2.0-beta.1
5.1.0
5.0.6
5.0.5
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.1
4.6.0
4.5.2
4.5.1
4.5.0
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.2
4.3.1
4.3.0
4.2.0
4.1.1
4.1.0
4.0.0
Duskmoon UI component library for Phoenix LiveView
Current section
Files
Jump to
Current section
Files
lib/phoenix_duskmoon/component.ex
defmodule PhoenixDuskmoon.Component do
@moduledoc """
Provides `Duskmoon UI` component for phoenix.
This library add a list of phoneix component.
"""
@doc """
Generate a random id format `random-8DFBEE211780394A`
"""
def generate_id() do
"random-#{:crypto.strong_rand_bytes(8) |> Base.encode16()}"
end
@doc false
def live_component do
quote do
use Phoenix.LiveComponent
unquote(html_helpers())
end
end
@doc false
def html do
quote do
use Phoenix.Component
# Import convenience functions from controllers
import Phoenix.Controller,
only: [get_csrf_token: 0, view_module: 1, view_template: 1]
# Include general helpers for rendering HTML
unquote(html_helpers())
end
end
defp html_helpers do
quote do
# HTML escaping functionality
import Phoenix.HTML
# Shortcut for generating JS commands
alias Phoenix.LiveView.JS
end
end
@doc false
def component do
quote do
import PhoenixDuskmoon.Component.Actionbar
import PhoenixDuskmoon.Component.Appbar
import PhoenixDuskmoon.Component.Breadcrumb
import PhoenixDuskmoon.Component.Button
import PhoenixDuskmoon.Component.Card
import PhoenixDuskmoon.Component.Form
import PhoenixDuskmoon.Component.Flash
import PhoenixDuskmoon.Component.Icons
import PhoenixDuskmoon.Component.LeftMenu
import PhoenixDuskmoon.Component.Link
import PhoenixDuskmoon.Component.Loading
import PhoenixDuskmoon.Component.Markdown
import PhoenixDuskmoon.Component.Modal
import PhoenixDuskmoon.Component.PageFooter
import PhoenixDuskmoon.Component.PageHeader
import PhoenixDuskmoon.Component.Pagination
import PhoenixDuskmoon.Component.Tab
import PhoenixDuskmoon.Component.Table
import PhoenixDuskmoon.Component.ThemeSwitcher
end
end
@doc false
defmacro __using__(which) when is_atom(which) do
apply(__MODULE__, which, [])
end
defmacro __using__(_) do
quote do
unquote(component())
end
end
end