Form posting — slotted options, preselected
A Django widget renders one <material-option> per
queryset row; selected marks the chosen side (the exact
markup a <select multiple> gets). Click marks,
double-click moves, Space marks / Enter moves from the keyboard.
Filter applies to "Choose all".
JS options, compact (size="5"), no filter
RTL (hard-coded)
Panels mirror; move chevrons point toward the logical "chosen" side.
Sample usage (Django)
<form method="post">
<material-transfer name="members" required
available-label="{% trans 'All users' %}"
chosen-label="{% trans 'Members' %}">
{% for user in users %}
<material-option value="{{ user.pk }}"
{% if user.pk in member_ids %}selected{% endif %}>
{{ user.get_full_name }}
</material-option>
{% endfor %}
</material-transfer>
</form>
# views.py
ids = request.POST.getlist('members') # ModelMultipleChoiceField works too