Files
new-website-jekyll-theme/_includes/forms/select.html
2026-10-22 16:51:00 -03:00

56 lines
1.4 KiB
HTML

---
id:
type: 'string'
name:
type: 'string'
default: ''
value:
type: 'string'
default: ''
required:
type: 'bool'
default: false
attributes:
type: 'string'
default: ''
class:
type: 'string'
default: 'form-select'
placeholder:
type: 'string'
default: ''
items:
type: 'array'
---
{% assign selected = value %}
<select
class="{{ class | escape_once }}"
name="{{- name | default: id | escape_once -}}"
id="{{- id | escape_once -}}"
{{ required | value_if: 'required' }}
{{ attributes }}
>
{% render 'forms/option.html', value: '', item: placeholder %}
{% for option in items %}
{% assign value = option | try: 'value' | default: option %}
{% assign item = option | try: 'item' | default: value %}
{% assign depends_on = option | try: 'depends_on' %}
{% assign attributes = selected | equals: value | ternary: 'selected', '' %}
{% if depends_on %}
{% capture attributes %}
data-form-dependencies-target="dependent"
data-form-dependencies-dependent-id="{{ depends_on.id | escape_once }}"
data-form-dependencies-id="{{ id | escape_once }}"
data-form-dependencies-condition="{{ depends_on | try: 'condition' | default: 'any' | escape_once }}"
data-form-dependencies-value="{{ depends_on | try: 'value' | escape_once }}"
hidden
disabled
{% endcapture %}
{% endif %}
{% render 'forms/option.html', value:, item:, attributes: %}
{% endfor %}
</select>