condition-group

The layout of a rule builder: match all or any, its conditions and actions. Your code owns the rows.

Example

Group 1

Laravel

<x-admin::condition-group match="all" match-name="g_match" label="Group 1">
    <x-admin::condition-row>
        <x-admin::select name="g_field" label="Field" :options="['country' => 'Country', 'age' => 'Age']" />
        <x-admin::select name="g_op" label="Operator" :options="['is' => 'is', 'not' => 'is not']" />
        <x-admin::input name="g_value" label="Value" value="NZ" />
        <x-slot:actions><x-admin::button shape="square" icon="trash" aria-label="Remove condition" /></x-slot:actions>
    </x-admin::condition-row>
    <x-slot:actions><x-admin::button size="sm" icon="plus">Add condition</x-admin::button><x-admin::button size="sm" variant="ghost" icon="plus">Add group</x-admin::button></x-slot:actions>
</x-admin::condition-group>

Props

PropRequiredDefaultOptions
match"all"
match-namenull
labelnull

Slots: actions

Other attributes, such as wire:model or data-*, pass through to the element.

Other stacks

React and Vue: import { ConditionGroup } from "@admiral/ui-kit/react" (or /vue). See the React and Vue guide.

HTML, for any stack
<div class="adm-condition-group" role="group"  aria-label="Group 1" >
    <div class="adm-condition-group__head">
        <span class="adm-condition-group__label">Group 1</span>                    <select
         name="g_match"          id="g_match"                                 class="adm-select" style="width:auto;" aria-label="Match"
    >
                                        <option value="all" selected>All of these</option>
                                <option value="any" >Any of these</option>
                
    </select>
            </div>
    <div class="adm-condition-group__rows"><div class="adm-condition-row">
    <div class="adm-condition-row__fields"><div class="adm-field">
            <label class="adm-label" for="g_field">Field</label>
        <select
         name="g_field"          id="g_field"                                 class="adm-select"
    >
                                        <option value="country" >Country</option>
                                <option value="age" >Age</option>
                
    </select>
        </div>
        <div class="adm-field">
            <label class="adm-label" for="g_op">Operator</label>
        <select
         name="g_op"          id="g_op"                                 class="adm-select"
    >
                                        <option value="is" >is</option>
                                <option value="not" >is not</option>
                
    </select>
        </div>
        <div class="adm-field">
            <label class="adm-label" for="g_value">Value</label>
        <input
        type="text"
         name="g_value"          id="g_value"          value="NZ"                                 class="adm-input"
    >
        </div></div>
    <div class="adm-row"><button type="button" class="adm-btn adm-btn--secondary adm-btn--square" aria-label="Remove condition" ><svg class="adm-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 6h18M8 6V4h8v2M6 6l1 15h10l1-15"/></svg></button></div></div></div>
    <div class="adm-row"><button type="button" class="adm-btn adm-btn--secondary adm-btn--sm" ><svg class="adm-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 5v14M5 12h14"/></svg>Add condition</button>
<button type="button" class="adm-btn adm-btn--ghost adm-btn--sm" ><svg class="adm-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 5v14M5 12h14"/></svg>Add group</button></div></div>