Skip to content

Commit

Permalink
Bootstrap 5: add support for color input
Browse files Browse the repository at this point in the history
  • Loading branch information
xificurk committed Dec 28, 2023
1 parent 482e3c7 commit 6ddc37c
Show file tree
Hide file tree
Showing 28 changed files with 207 additions and 19 deletions.
9 changes: 9 additions & 0 deletions src/FormRenderer/templates/bootstrap5.latte
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,15 @@
">
{/define}

{define #input-type-color}
<input n:name="$control" n:class="
$control->getControlPrototype()->class,
form-control,
form-control-color,
($control|validationClass)
">
{/define}

{define #input-type-checkbox}
<div n:class="
$control->getSeparatorPrototype()->class,
Expand Down
4 changes: 4 additions & 0 deletions tests/FormRenderer/Bootstrap5RendererTest.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ class Bootstrap5RendererTest extends TestCase
'inlineradiolist' => '1',
'range' => 10,
'switch' => true,
'color' => '#ff0000',
]);
HtmlAssert::matchFile(__DIR__ . "/expected/bootstrap5-{$mode}-renderValidState.html", $form->__toString(), 'render valid state');
}
Expand Down Expand Up @@ -225,6 +226,9 @@ class Bootstrap5RendererTest extends TestCase
$range = $form->addText('range', 'Range');
$range->setHtmlType('range')->setOption('type', 'range');

$color = $form->addText('color', 'Color');
$color->setHtmlType('color')->setOption('type', 'color');

$switch = $form->addCheckbox('switch', 'Switch');
$switch->setOption('type', 'switch');
$switch->setOption('description', 'Switch description');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,14 @@
<input type="range" name="range" id="frm-range" class="form-range align-top">

<div class="form-text">Control range description.</div>
</div>

<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" id="frm-color" name="color" type="color">
<div class="form-text">Control color description.</div>
</div>

<div class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,13 @@
<div class="custom-range mb-3">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>


<div class="custom-color mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" id="frm-color" name="color" type="color">
</div>

<div class="custom-switch mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,13 @@
<div id="custom-range" class="mb-3">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>


<div id="custom-color" class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" id="frm-color" name="color" type="color">
</div>

<div id="custom-switch" class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,13 @@
</div>
</div>
<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<div class="position-relative">
<input class="form-control form-control-color is-invalid" id="frm-color" name="color" type="color">
<div class="d-block invalid-tooltip">Control color error 1. Control color error 2.</div>
</div>
</div>
<div class="mb-3">
<div class="position-relative">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input is-invalid">
Expand Down
7 changes: 7 additions & 0 deletions tests/FormRenderer/expected/bootstrap5-basic-errors.html
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,15 @@

<div class="d-block invalid-feedback">Control range error 1.</div>
<div class="d-block invalid-feedback">Control range error 2.</div>
</div>

<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color is-invalid" id="frm-color" name="color" type="color">
<div class="d-block invalid-feedback">Control color error 1.</div>
<div class="d-block invalid-feedback">Control color error 2.</div>
</div>

<div class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input is-invalid">
Expand Down
6 changes: 5 additions & 1 deletion tests/FormRenderer/expected/bootstrap5-basic-imports.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,13 @@
<div class="mb-3">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>


<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" id="frm-color" name="color" type="color">
</div>

<div class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,13 @@
<div class="mb-3">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" value="10" class="form-range align-top is-valid">
</div>


<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color is-valid" id="frm-color" name="color" type="color" value="#ff0000">
</div>

<div class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" checked class="form-check-input is-valid">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,13 @@
<div class="mb-3 required">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" required data-nette-rules='[{"op":":filled","msg":"REQUIRED"}]' class="form-range align-top">
</div>


<div class="mb-3 required">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" data-nette-rules='[{"op":":filled","msg":"REQUIRED"}]' id="frm-color" name="color" required type="color">
</div>

<div class="mb-3 required">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" required data-nette-rules='[{"op":":filled","msg":"REQUIRED"}]' class="form-check-input">
Expand Down
6 changes: 5 additions & 1 deletion tests/FormRenderer/expected/bootstrap5-basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,13 @@
<div class="mb-3">
<label class="form-label" for="frm-range">Range</label>
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>


<div class="mb-3">
<label class="form-label" for="frm-color">Color</label>
<input class="form-control form-control-color" id="frm-color" name="color" type="color">
</div>

<div class="mb-3">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,18 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" class="form-range align-top">

<div class="form-text">Control range description.</div>

</div>
</div>

<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
<div class="form-text">Control color description.</div>
</div>
</div>

<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,16 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>
</div>


</div>
<div class="custom-color mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>

<div class="custom-switch mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,16 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" class="form-range align-top">


</div>
</div>

<div id="custom-color" class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>

<div id="custom-switch" class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,15 @@
</div>
</div>
<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<div class="position-relative">
<input type="color" name="color" id="frm-color" class="form-control form-control-color is-invalid">
<div class="d-block invalid-tooltip">Control color error 1. Control color error 2.</div>
</div>
</div>
</div>
<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="position-relative">
<div class="form-check form-switch">
Expand Down
12 changes: 12 additions & 0 deletions tests/FormRenderer/expected/bootstrap5-horizontal-errors.html
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,18 @@

</div>
</div>


<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color is-invalid">
<div class="d-block invalid-feedback">Control color error 1.</div>
<div class="d-block invalid-feedback">Control color error 2.</div>
</div>
</div>


<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
10 changes: 8 additions & 2 deletions tests/FormRenderer/expected/bootstrap5-horizontal-imports.html
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,16 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" class="form-range align-top">


</div>
</div>

<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>

<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,17 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" value="10" class="form-range align-top is-valid">
</div>
</div>


</div>
<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color is-valid" value="#ff0000">
</div>
</div>

<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,16 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" required data-nette-rules='[{"op":":filled","msg":"REQUIRED"}]' class="form-range align-top">


</div>
</div>

<div class="mb-3 row required">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" required data-nette-rules='[{"op":":filled","msg":"REQUIRED"}]' class="form-control form-control-color">
</div>
</div>

<div class="mb-3 row required">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
10 changes: 8 additions & 2 deletions tests/FormRenderer/expected/bootstrap5-horizontal.html
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,16 @@
<label class="col-sm-3 col-form-label pt-sm-0" for="frm-range">Range</label>
<div class="col-sm-9">
<input type="range" name="range" id="frm-range" class="form-range align-top">
</div>
</div>


</div>
<div class="mb-3 row">
<label class="col-sm-3 col-form-label" for="frm-color">Color</label>
<div class="col-sm-9">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>

<div class="mb-3 row">
<div class="col-sm-9 offset-sm-3">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,15 @@
</div>
<div class="col-12">
<div class="row row-cols-sm-auto g-2 align-items-baseline">
<label class="col-12" for="frm-color">Color</label>
<div class="position-relative col-12">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
<div class="form-text col-auto">Control color description.</div>
</div>
</div>
<div class="col-12">
<div class="row row-cols-sm-auto g-2 align-items-baseline">
<div class="position-relative col-12">
<div class="form-check form-switch">
<input type="checkbox" name="switch" id="frm-switch" class="form-check-input">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,14 @@
</div>
</div>
<div class="col-12">
<div class="custom-color row row-cols-sm-auto g-2 align-items-baseline">
<label class="col-12" for="frm-color">Color</label>
<div class="position-relative col-12">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>
</div>
<div class="col-12">
<div class="custom-switch row row-cols-sm-auto g-2 align-items-baseline">
<div class="position-relative col-12">
<div class="form-check form-switch">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,14 @@
</div>
</div>
<div class="col-12">
<div class="row row-cols-sm-auto g-2 align-items-baseline" id="custom-color">
<label class="col-12" for="frm-color">Color</label>
<div class="position-relative col-12">
<input type="color" name="color" id="frm-color" class="form-control form-control-color">
</div>
</div>
</div>
<div class="col-12">
<div class="row row-cols-sm-auto g-2 align-items-baseline" id="custom-switch">
<div class="position-relative col-12">
<div class="form-check form-switch">
Expand Down
Loading

0 comments on commit 6ddc37c

Please sign in to comment.