aboutsummaryrefslogtreecommitdiff
path: root/api/pl.treksoft.kvision.form
diff options
context:
space:
mode:
Diffstat (limited to 'api/pl.treksoft.kvision.form')
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/index.html9
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add-internal.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add.html30
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/index.html12
-rw-r--r--api/pl.treksoft.kvision.form/-form/add.html30
-rw-r--r--api/pl.treksoft.kvision.form/-form/index.html10
-rw-r--r--api/pl.treksoft.kvision.form/-help-block/index.html9
7 files changed, 71 insertions, 33 deletions
diff --git a/api/pl.treksoft.kvision.form/-field-label/index.html b/api/pl.treksoft.kvision.form/-field-label/index.html
index ba165506..6ae50480 100644
--- a/api/pl.treksoft.kvision.form/-field-label/index.html
+++ b/api/pl.treksoft.kvision.form/-field-label/index.html
@@ -63,6 +63,15 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/templates.html">templates</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">templates</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+<p>Handlebars templates for i18n.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.html/-tag/type.html">type</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/add-internal.html b/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
index a33da08e..fbbbd6fe 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
@@ -8,7 +8,7 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./add-internal.html">addInternal</a><br/>
<br/>
<h1>addInternal</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/add.html b/api/pl.treksoft.kvision.form/-form-panel/add.html
index 723ce9f7..55663b95 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/add.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/add.html
@@ -8,8 +8,8 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
<br/>
<h1>add</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a string control to the form panel.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -18,14 +18,16 @@
<code>control</code> - the string form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form panel</p>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a boolean control to the form panel.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -34,14 +36,16 @@ current form panel</p>
<code>control</code> - the boolean form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form panel</p>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a number control to the form panel.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -50,14 +54,16 @@ current form panel</p>
<code>control</code> - the number form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form panel</p>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a date control to the form panel.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -66,14 +72,16 @@ current form panel</p>
<code>control</code> - the date form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form panel</p>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a files control to the form panel.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -82,6 +90,8 @@ current form panel</p>
<code>control</code> - the files form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/index.html b/api/pl.treksoft.kvision.form/-form-panel/index.html
index fb2e65dd..655893e4 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/index.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/index.html
@@ -116,15 +116,15 @@
<p><a href="add.html">add</a></p>
</td>
<td>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a string control to the form panel.</p>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Boolean)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a boolean control to the form panel.</p>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Number)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a number control to the form panel.</p>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a date control to the form panel.</p>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a files control to the form panel.</p>
</td>
</tr>
@@ -133,7 +133,7 @@
<p><a href="add-internal.html">addInternal</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code></td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
diff --git a/api/pl.treksoft.kvision.form/-form/add.html b/api/pl.treksoft.kvision.form/-form/add.html
index ee324f93..54194e62 100644
--- a/api/pl.treksoft.kvision.form/-form/add.html
+++ b/api/pl.treksoft.kvision.form/-form/add.html
@@ -8,8 +8,8 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">Form</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
<br/>
<h1>add</h1>
-<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a string control to the form.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -18,14 +18,16 @@
<code>control</code> - the string form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form</p>
-<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a boolean control to the form.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -34,14 +36,16 @@ current form</p>
<code>control</code> - the boolean form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form</p>
-<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a number control to the form.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -50,14 +54,16 @@ current form</p>
<code>control</code> - the number form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form</p>
-<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a date control to the form.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -66,14 +72,16 @@ current form</p>
<code>control</code> - the date form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
<code>validator</code> - optional validation function</p>
<p><strong>Return</strong><br/>
current form</p>
-<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a files control to the form.</p>
<h3>Parameters</h3>
<p><a name="key"></a>
@@ -82,6 +90,8 @@ current form</p>
<code>control</code> - the files form control</p>
<p><a name="required"></a>
<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
<p><a name="validatorMessage"></a>
<code>validatorMessage</code> - optional function returning validation message</p>
<p><a name="validator"></a>
diff --git a/api/pl.treksoft.kvision.form/-form/index.html b/api/pl.treksoft.kvision.form/-form/index.html
index f34e7aea..3de71e84 100644
--- a/api/pl.treksoft.kvision.form/-form/index.html
+++ b/api/pl.treksoft.kvision.form/-form/index.html
@@ -32,15 +32,15 @@
<p><a href="add.html">add</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.String)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a string control to the form.</p>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-bool-form-control/index.html"><span class="identifier">BoolFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Boolean)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a boolean control to the form.</p>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-number-form-control/index.html"><span class="identifier">NumberFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Number)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a number control to the form.</p>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-date-form-control/index.html"><span class="identifier">KDateFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">KDate</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, pl.treksoft.kvision.types.KDate)), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a date control to the form.</p>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">KFile</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>Adds a files control to the form.</p>
</td>
</tr>
diff --git a/api/pl.treksoft.kvision.form/-help-block/index.html b/api/pl.treksoft.kvision.form/-help-block/index.html
index 6d0ef9e5..f0e51946 100644
--- a/api/pl.treksoft.kvision.form/-help-block/index.html
+++ b/api/pl.treksoft.kvision.form/-help-block/index.html
@@ -63,6 +63,15 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/templates.html">templates</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">templates</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+<p>Handlebars templates for i18n.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.html/-tag/type.html">type</a></p>
</td>
<td>