Packages
phoenix_duskmoon
4.5.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.ex
defmodule PhoenixDuskmoon do
@moduledoc """
Provides a suit of html custom component for phoenix.
This library add a list of phoneix component.
## Form helper
See `PhoenixDuskmoon.FormHelper`.
## JavaScript library
This project provides javascript that define custom elements.
To use the web component, you must load `priv/static/phoenix_duskmoon.js`
into your build tool. Or through npm by install `phoenix_duskmoon`.
### Using js library in hex package:
We need to run npm install in hex package
```
npm install --prefix <path to root>/deps/phoenix/duskmoon
```
"""
def live_component do
quote do
use Phoenix.LiveComponent
unquote(html_helpers())
end
end
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
def alias do
quote do
alias PhoenixDuskmoon.Link
alias PhoenixDuskmoon.Actionbar
alias PhoenixDuskmoon.Appbar
alias PhoenixDuskmoon.Breadcrumb
alias PhoenixDuskmoon.Card
alias PhoenixDuskmoon.LeftMenu
alias PhoenixDuskmoon.Markdown
alias PhoenixDuskmoon.Modal
alias PhoenixDuskmoon.Pagination
alias PhoenixDuskmoon.Table
alias PhoenixDuskmoon.PageHeader
alias PhoenixDuskmoon.PageFooter
alias PhoenixDuskmoon.Tab
alias PhoenixDuskmoon.Form
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
defp components do
quote do
import PhoenixDuskmoon.Actionbar
import PhoenixDuskmoon.Appbar
import PhoenixDuskmoon.Breadcrumb
import PhoenixDuskmoon.Card
import PhoenixDuskmoon.Icons
import PhoenixDuskmoon.LeftMenu
import PhoenixDuskmoon.Link
import PhoenixDuskmoon.Loading
import PhoenixDuskmoon.Markdown
import PhoenixDuskmoon.Modal
import PhoenixDuskmoon.Pagination
import PhoenixDuskmoon.PageHeader
import PhoenixDuskmoon.PageFooter
import PhoenixDuskmoon.Tab
import PhoenixDuskmoon.Table
import PhoenixDuskmoon.Form
end
end
@doc """
Import helpers for internal usage.
## Support:
- `use PhoenixDuskmoon`
### Internal use Only
- `use PhoenixDuskmoon, :component`
- `use PhoenixDuskmoon, :live_component`
"""
defmacro __using__(which) when is_atom(which) do
apply(__MODULE__, which, [])
end
defmacro __using__(_) do
quote do
unquote(components())
end
end
end