8000 [TwigBridge] add tailwindcss form layout · symfony/symfony@3719a40 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3719a40

Browse files
kbondfabpot
authored andcommitted
[TwigBridge] add tailwindcss form layout
1 parent 906b609 commit 3719a40

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{# @experimental in 5.2 #}
2+
3+
{% use 'form_div_layout.html.twig' %}
4+
5+
{%- block form_row -%}
6+
{%- set row_attr = row_attr|merge({ class: row_attr.class|default(row_class|default('mb-6')) }) -%}
7+
{{- parent() -}}
8+
{%- endblock form_row -%}
9+
10+
{%- block widget_attributes -%}
11+
{%- set attr = attr|merge({ class: attr.class|default(widget_class|default('mt-1 w-full')) ~ (disabled ? ' ' ~ widget_disabled_class|default('border-gray-300 text-gray-500')) ~ (errors|length ? ' ' ~ widget_errors_class|default('border-red-700')) }) -%}
12+
{{- parent() -}}
13+
{%- endblock widget_attributes -%}
14+
15+
{%- block form_label -%}
16+
{%- set label_attr = label_attr|merge({ class: label_attr.class|default(label_class|default('block text-gray-800')) }) -%}
17+
{{- parent() -}}
18+
{%- endblock form_label -%}
19+
20+
{%- block form_help -%}
21+
{%- set help_attr = help_attr|merge({ class: help_attr.class|default(help_class|default('mt-1 text-gray-600')) }) -%}
22+
{{- parent() -}}
23+
{%- endblock form_help -%}
24+
25+
{%- block form_errors -%}
26+
{%- if errors|length > 0 -%}
27+
<ul>
28+
{%- for error in errors -%}
29+
<li class="{{ error_item_class|default('text-red-700') }}">{{ error.message }}</li>
30+
{%- endfor -%}
31+
</ul>
32+
{%- endif -%}
33+
{%- endblock form_errors -%}
34+
35+
{%- block choice_widget_expanded -%}
36+
{%- set attr = attr|merge({ class: attr.class|default('mt-2') }) -%}
37+
<div {{ block('widget_container_attributes') }}>
38+
{%- for child in form %}
39+
<div class="flex items-center">
40+
{{- form_widget(child) -}}
41+
{{- form_label(child, null, { translation_domain: choice_translation_domain }) -}}
42+
</div>
43+
{% endfor -%}
44+
</div>
45+
{%- endblock choice_widget_expanded -%}
46+
47+
{%- block checkbox_row -%}
48+
{%- set row_attr = row_attr|merge({ class: row_attr.class|default(row_class|default('mb-6')) }) -%}
49+
{%- set widget_attr = {} -%}
50+
{%- if help is not empty -%}
51+
{%- set widget_attr = {attr: {'aria-describedby': id ~"_help"}} -%}
52+
{%- endif -%}
53+
<div{% with {attr: row_attr} %}{{ block('attributes') }}{% endwith %}>
54+
{{- form_errors(form) -}}
55+
<div class="inline-flex items-center">
56+
{{- form_widget(form, widget_attr) -}}
57+
{{- form_label(form) -}}
58+
</div>
59+
{{- form_help(form) -}}
60+
</div>
61+
{%- endblock checkbox_row -%}
62+
63+
{%- block checkbox_widget -%}
64+
{%- set widget_class = widget_class|default('mr-2') -%}
65+
{{- parent() -}}
66+
{%- endblock checkbox_widget -%}
67+
68+
{%- block radio_widget -%}
69+
{%- set widget_class = widget_class|default('mr-2') -%}
70+
{{- parent() -}}
71+
{%- endblock radio_widget -%}

0 commit comments

Comments
 (0)
0