JumarWeb.CoreComponents (Jumar v0.1.0)
View SourceProvides core UI components.
The components in this module use Tailwind CSS, a utility-first CSS framework. See the Tailwind CSS documentation to learn how to customize the generated components in this module.
Icons are provided by heroicons, using the heroicons_elixir project.
Summary
Functions
Renders a back navigation link.
Generates a generic error message.
Renders flash notices.
Shows the flash group with standard titles and content.
Renders a header with title.
Renders a Heroicon.
Renders an input with label and error messages.
Renders a label.
Renders a data list.
Renders a modal.
Renders a simple form.
Renders a table with generic styling.
Translates an error message using gettext.
Translates the errors for a field from a keyword list of errors.
Functions
Renders a back navigation link.
Examples
<.back navigate={~p"/posts"}>Back to posts</.back>Attributes
navigate(:any) (required)
Slots
inner_block(required)
Generates a generic error message.
Slots
inner_block(required)
Renders flash notices.
Examples
<.flash kind={:info} flash={@flash} />
<.flash kind={:info} phx-mounted={show("#flash")}>Welcome Back!</.flash>Attributes
id(:string) - the optional id of flash container. Defaults to"flash".flash(:map) - the map of flash messages to display. Defaults to%{}.title(:string) - Defaults tonil.kind(:atom) - used for styling and flash lookup. Must be one of:info, or:error.autoshow(:boolean) - whether to auto show the flash on mount. Defaults totrue.close(:boolean) - whether the flash can be closed. Defaults totrue.- Global attributes are accepted. the arbitrary HTML attributes to add to the flash container.
Slots
inner_block- the optional inner block that renders the flash message.
Shows the flash group with standard titles and content.
Examples
<.flash_group flash={@flash} />Attributes
flash(:map) (required) - the map of flash messages.
Renders a header with title.
Attributes
class(:string) - Defaults tonil.
Slots
inner_block(required)subtitleactions
Renders a Heroicon.
Heroicons come in three styles – outline, solid, and mini.
By default, the outline style is used, but solid and mini may
be applied by using the -solid and -mini suffix.
You can customize the size and colors of the icons by setting width, height, and background color classes.
Icons are extracted from the deps/heroicons directory and bundled within
your compiled app.css by the plugin in assets/vendor/heroicons.js.
Examples
<.icon name="hero-x-mark" />
<.icon name="hero-arrow-path" class="ml-1 size-3 motion-safe:animate-spin" />Attributes
name(:string) (required)class(:string) - Defaults to"size-4".
Renders an input with label and error messages.
A %Phoenix.HTML.Form{} and field name may be passed to the input
to build input names and error messages, or all the attributes and
errors may be passed explicitly.
Examples
<.input field={@form[:email]} type="email" />
<.input name="my-input" errors={["oh no!"]} />Attributes
id(:any) - Defaults tonil.name(:any)label(:string) - Defaults tonil.value(:any)type(:string) - Defaults to"text". Must be one of"checkbox","color","date","datetime-local","email","file","hidden","month","number","password","range","radio","search","select","tel","text","textarea","time","url", or"week".field(Phoenix.HTML.FormField) - a form field struct retrieved from the form, for example: @form[:email].errors(:list) - Defaults to[].checked(:boolean) - the checked flag for checkbox inputs.prompt(:string) - the prompt for select inputs. Defaults tonil.options(:list) - the options to pass to Phoenix.HTML.Form.options_for_select/2.multiple(:boolean) - the multiple flag for select inputs. Defaults tofalse.- Global attributes are accepted. Supports all globals plus:
["autocomplete", "cols", "disabled", "form", "max", "maxlength", "min", "minlength", "pattern", "placeholder", "readonly", "required", "rows", "size", "step"].
Slots
inner_block
Renders a label.
Attributes
for(:string) - Defaults tonil.
Slots
inner_block(required)
Renders a data list.
Examples
<.list>
<:item title="Title"><%= @post.title %></:item>
<:item title="Views"><%= @post.views %></:item>
</.list>Slots
item(required) - Accepts attributes:title(:string) (required)
Renders a modal.
Examples
<.modal id="confirm-modal">
Are you sure?
<:confirm>OK</:confirm>
<:cancel>Cancel</:cancel>
</.modal>JS commands may be passed to the :on_cancel and on_confirm attributes
for the caller to react to each button press, for example:
<.modal id="confirm" on_confirm={JS.push("delete")} on_cancel={JS.navigate(~p"/posts")}>
Are you sure you?
<:confirm>OK</:confirm>
<:cancel>Cancel</:cancel>
</.modal>Attributes
id(:string) (required)show(:boolean) - Defaults tofalse.on_cancel(Phoenix.LiveView.JS) - Defaults to%Phoenix.LiveView.JS{ops: []}.on_confirm(Phoenix.LiveView.JS) - Defaults to%Phoenix.LiveView.JS{ops: []}.
Slots
inner_block(required)titlesubtitleconfirmcancel
Renders a simple form.
Examples
<.simple_form for={@form} phx-change="validate" phx-submit="save">
<.input field={@form[:email]} label="Email"/>
<.input field={@form[:username]} label="Username" />
<:actions>
<.button>Save</.button>
</:actions>
</.simple_form>Attributes
for(:any) (required) - the datastructure for the form.as(:any) - the server side parameter to collect all input under. Defaults tonil.- Global attributes are accepted. the arbitrary HTML attributes to apply to the form tag. Supports all globals plus:
["autocomplete", "name", "rel", "action", "enctype", "method", "novalidate", "target"].
Slots
inner_block(required)actions- the slot for form actions, such as a submit button.
Renders a table with generic styling.
Examples
<.table id="users" rows={@users}>
<:col :let={user} label="id"><%= user.id %></:col>
<:col :let={user} label="username"><%= user.username %></:col>
</.table>Attributes
id(:string) (required)rows(:list) (required)row_id(:any) - the function for generating the row id. Defaults tonil.row_click(:any) - the function for handling phx-click on each row. Defaults tonil.row_item(:any) - the function for mapping each row before calling the :col and :action slots. Defaults to&Function.identity/1.
Slots
col(required) - Accepts attributes:label(:string)
action- the slot for showing user actions in the last table column.
Translates an error message using gettext.
Translates the errors for a field from a keyword list of errors.