<%# locals: (rule:) %> <%= styled_form_with model: rule, class: "space-y-6", data: { controller: "rules", rule_registry_value: rule.registry.to_json } do |f| %> <%= f.hidden_field :resource_type, value: rule.resource_type %> <% if @rule.errors.any? %> <%= render "shared/form_errors", model: @rule %> <% end %>
<%= icon "tag", size: "sm" %>

Rule name (optional)

<%= f.text_field :name, placeholder: "Enter a name for this rule", class: "form-field__input" %>

IF

<%# Condition Group template, used by Stimulus controller to add new conditions dynamically %> <%# Condition template, used by Stimulus controller to add new conditions dynamically %>
<%= render ButtonComponent.new(text: "Add condition", icon: "plus", variant: "ghost", type: "button", data: { action: "rules#addCondition" }) %> <%= render ButtonComponent.new(text: "Add condition group", icon: "copy-plus", variant: "ghost", type: "button", data: { action: "rules#addConditionGroup" }) %>

THEN

<%# Action template, used by Stimulus controller to add new actions dynamically %>
<%= render ButtonComponent.new(text: "Add action", icon: "plus", variant: "ghost", type: "button", data: { action: "rules#addAction" }) %>

FOR

<%= f.radio_button :effective_date_enabled, false, checked: rule.effective_date.nil?, data: { action: "rules#clearEffectiveDate" } %> <%= f.label :effective_date_enabled_false, "All past and future #{rule.resource_type}s", class: "text-sm text-primary" %>
<%= f.radio_button :effective_date_enabled, true, checked: rule.effective_date.present? %> <%= f.label :effective_date_enabled_true, "Starting from", class: "text-sm text-primary" %>
<%= f.date_field :effective_date, container_class: "w-fit", data: { rules_target: "effectiveDateInput" } %>
<%= f.submit %> <% end %>