46 lines
1.4 KiB
Plaintext
46 lines
1.4 KiB
Plaintext
<%= tag.public_send(@tag, class: "mb-6 last:mb-0", data: {
|
|
:'field-name' => @field_name
|
|
}) do %>
|
|
<% if @positioning == :vertical %>
|
|
<label class="block">
|
|
<p class="font-bold <%= @descripton.present? ? "mb-1" : "mb-2" %>">
|
|
<%= @title %>
|
|
</p>
|
|
<% if @descripton.present? %>
|
|
<p class="text-gray-500">
|
|
<%= @descripton %>
|
|
</p>
|
|
<% end %>
|
|
|
|
<%= tag.p class: "flex gap-x-1", data: {
|
|
controller: @resettable ? "settings--resettable-field" : nil,
|
|
} do %>
|
|
<%= content %>
|
|
<% if @resettable %>
|
|
<button type="button"
|
|
class="relative grow-0 shrink-0 btn-md btn-outline text-red-700"
|
|
title="Reset to default value"
|
|
data-settings--resettable-field-target="resetButton"
|
|
data-action="settings--resettable-field#resetField">
|
|
Reset
|
|
</button>
|
|
<% end %>
|
|
<% end %>
|
|
</label>
|
|
<% elsif @positioning == :horizontal %>
|
|
<label class="block flex items-center justify-between">
|
|
<div class="flex flex-col">
|
|
<label class="font-bold mb-1"><%= @title %></label>
|
|
<% if @descripton.present? %>
|
|
<p class="text-gray-500"><%= @descripton %></p>
|
|
<% end %>
|
|
</div>
|
|
<div class="relative ml-4 inline-flex flex-shrink-0">
|
|
<%= content %>
|
|
</div>
|
|
</label>
|
|
<% else %>
|
|
<p>Invalid <code>positioning<code> argument for <code>FieldsetComponent</code>.</p>
|
|
<% end %>
|
|
<% end %>
|