{{-- One condition: field · operator · type-aware value input. All three come from the SERVER registry payload (`metadata`): the field list, the operators legal for the selected field, and whether the value is a scalar, a range, or an option lookup. Nothing here hardcodes a column, an operator set, or a table — changing the registry changes this UI. Variables: $node (Alpine expr for the condition), $parent, $index --}}
{{-- ── Field ──────────────────────────────────────────────────────── --}}

{{ __('admin.campaign_groups.builder.heavy_field') }}

{{-- ── Operator (only those the server allows for this field) ─────── --}}
{{-- ── Value: rendered from the field TYPE + operator ARITY ───────── --}}
{{-- Unary operators take no value at all --}}

—

{{-- Range: two inputs, typed by the field --}}
{{-- Boolean: an explicit Yes/No select --}} {{-- Option fields: ONE combobox for both single and multi select. The list opens as the input's own dropdown instead of sitting under it as a permanent list box, so a condition row stays one line tall however many options the field has. The menu is `position:fixed` because the builder card clips its overflow — an absolutely positioned menu would be cut off at the card edge. What is CHOSEN still shows as chips, which is the part that has to stay readable once the menu closes. --}}

{{ __('admin.campaign_groups.builder.loading_options') }}

{{ __('admin.campaign_groups.builder.no_options') }}

{{ __('admin.campaign_groups.builder.more_options') }}

{{-- Scalar text / number / date / email / phone. A `suggest` field also gets a datalist: the values its column declares (ENUM members) plus the distinct values already stored, de-duplicated by the server. It stays a plain input on purpose — an admin can still target a value the data does not hold yet. --}}

{{-- ── Remove ─────────────────────────────────────────────────────── --}}
{{-- Inline, per-condition server error --}}