summaryrefslogtreecommitdiff
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/-bool-form-control/index.html17
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/index.html17
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/-init-.html8
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/index.html21
-rw-r--r--api/pl.treksoft.kvision.form/-files-form-control/get-value-as-string.html16
-rw-r--r--api/pl.treksoft.kvision.form/-files-form-control/get-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-files-form-control/index.html165
-rw-r--r--api/pl.treksoft.kvision.form/-files-form-control/set-value.html19
-rw-r--r--api/pl.treksoft.kvision.form/-files-form-control/value.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/disabled.html2
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/index.html28
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/input.html2
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/name.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/size.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-enctype/-m-u-l-t-i-p-a-r-t.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-enctype/-p-l-a-i-n.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-enctype/-u-r-l-e-n-c-o-d-e-d.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-enctype/index.html40
-rw-r--r--api/pl.treksoft.kvision.form/-form-input/disabled.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-input/index.html195
-rw-r--r--api/pl.treksoft.kvision.form/-form-input/name.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-input/size.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-method/-g-e-t.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-method/-p-o-s-t.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-method/index.html33
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/-init-.html10
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/action.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add.html16
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/autocomplete.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/enctype.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/form-panel.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/index.html78
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/method.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/name.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/novalidate.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/target.html21
-rw-r--r--api/pl.treksoft.kvision.form/-form-target/-b-l-a-n-k.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-target/-p-a-r-e-n-t.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-target/-s-e-l-f.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-target/-t-o-p.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-target/index.html47
-rw-r--r--api/pl.treksoft.kvision.form/-form/add.html16
-rw-r--r--api/pl.treksoft.kvision.form/-form/index.html2
-rw-r--r--api/pl.treksoft.kvision.form/-help-block/-init-.html8
-rw-r--r--api/pl.treksoft.kvision.form/-help-block/index.html21
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/index.html17
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/index.html17
-rw-r--r--api/pl.treksoft.kvision.form/index.html43
49 files changed, 1179 insertions, 51 deletions
diff --git a/api/pl.treksoft.kvision.form/-bool-form-control/index.html b/api/pl.treksoft.kvision.form/-bool-form-control/index.html
index 2b05a0a2..edf77b6a 100644
--- a/api/pl.treksoft.kvision.form/-bool-form-control/index.html
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/index.html
@@ -32,7 +32,7 @@
<p><a href="../-form-control/disabled.html">disabled</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</td>
</tr>
@@ -50,17 +50,26 @@
<p><a href="../-form-control/input.html">input</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</td>
</tr>
<tr>
<td>
+<p><a href="../-form-control/name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../-form-control/size.html">size</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-date-form-control/index.html b/api/pl.treksoft.kvision.form/-date-form-control/index.html
index e3b143ac..50ea07c0 100644
--- a/api/pl.treksoft.kvision.form/-date-form-control/index.html
+++ b/api/pl.treksoft.kvision.form/-date-form-control/index.html
@@ -32,7 +32,7 @@
<p><a href="../-form-control/disabled.html">disabled</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</td>
</tr>
@@ -50,17 +50,26 @@
<p><a href="../-form-control/input.html">input</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</td>
</tr>
<tr>
<td>
+<p><a href="../-form-control/name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../-form-control/size.html">size</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-field-label/-init-.html b/api/pl.treksoft.kvision.form/-field-label/-init-.html
index 329b7a8a..3aa53a78 100644
--- a/api/pl.treksoft.kvision.form/-field-label/-init-.html
+++ b/api/pl.treksoft.kvision.form/-field-label/-init-.html
@@ -9,14 +9,14 @@
<br/>
<h1>&lt;init&gt;</h1>
<a name="pl.treksoft.kvision.form.FieldLabel$&lt;init&gt;(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))"></a>
-<code><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</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><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/text">text</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></code>
+<code><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</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><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/content">content</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></code>
<h3>Parameters</h3>
<p><a name="forId"></a>
<code>forId</code> - the value of <em>for</em> attribute</p>
-<p><a name="text"></a>
-<code>text</code> - the text of the label</p>
+<p><a name="content"></a>
+<code>content</code> - the text of the label</p>
<p><a name="rich"></a>
-<code>rich</code> - determines if <a href="-init-.html#pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/text">text</a> can contain HTML code</p>
+<code>rich</code> - determines if <a href="-init-.html#pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/content">content</a> can contain HTML code</p>
<p><a name="classes"></a>
<code>classes</code> - a set of CSS class names</p>
<p><strong>Constructor</strong><br/>
diff --git a/api/pl.treksoft.kvision.form/-field-label/index.html b/api/pl.treksoft.kvision.form/-field-label/index.html
index 8aba67d7..ba165506 100644
--- a/api/pl.treksoft.kvision.form/-field-label/index.html
+++ b/api/pl.treksoft.kvision.form/-field-label/index.html
@@ -18,7 +18,7 @@
<p><a href="-init-.html">&lt;init&gt;</a></p>
</td>
<td>
-<code><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</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><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/text">text</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></code></td>
+<code><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</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><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/content">content</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</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.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></code></td>
</tr>
</tbody>
</table>
@@ -36,20 +36,29 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/content.html">content</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">content</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Text content of the tag.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.html/-tag/rich.html">rich</a></p>
</td>
<td>
-<code><span class="keyword">var </span><span class="identifier">rich</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
-<p>Determines if <a href="../../pl.treksoft.kvision.html/-tag/text.html">text</a> can contain HTML code.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">rich</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if <a href="../../pl.treksoft.kvision.html/-tag/content.html">content</a> can contain HTML code.</p>
</td>
</tr>
<tr>
<td>
-<p><a href="../../pl.treksoft.kvision.html/-tag/text.html">text</a></p>
+<p><a href="../../pl.treksoft.kvision.html/-tag/template.html">template</a></p>
</td>
<td>
-<code><span class="keyword">var </span><span class="identifier">text</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
-<p>Text content of the tag.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">template</span><span class="symbol">: </span><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></code>
+<p>Handlebars template.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-files-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-files-form-control/get-value-as-string.html
new file mode 100644
index 00000000..42ba9c0f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-files-form-control/get-value-as-string.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FilesFormControl.getValueAsString - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FilesFormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.FilesFormControl$getValueAsString()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getValueAsString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Overrides <a href="../-form-control/get-value-as-string.html">FormControl.getValueAsString</a></p>
+<p>Returns the value of the control as a String.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-files-form-control/get-value.html b/api/pl.treksoft.kvision.form/-files-form-control/get-value.html
new file mode 100644
index 00000000..c84da632
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-files-form-control/get-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FilesFormControl.getValue - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FilesFormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.FilesFormControl$getValue()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getValue</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><span class="symbol">&gt;</span><span class="symbol">?</span></code>
+<p>Overrides <a href="../-form-control/get-value.html">FormControl.getValue</a></p>
+<p>Returns the value of the control.</p>
+<p><strong>Return</strong><br/>
+the value</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-files-form-control/index.html b/api/pl.treksoft.kvision.form/-files-form-control/index.html
new file mode 100644
index 00000000..b364e491
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-files-form-control/index.html
@@ -0,0 +1,165 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FilesFormControl - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="./index.html">FilesFormControl</a><br/>
+<br/>
+<h1>FilesFormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">FilesFormControl</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a></code>
+<p>Base interface of a form control with a list of files value.</p>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="value.html">value</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">value</span><span class="symbol">: </span><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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><span class="symbol">&gt;</span><span class="symbol">?</span></code>
+<p>List of files value.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../-form-control/disabled.html">disabled</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if the field is disabled.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/flabel.html">flabel</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">flabel</span><span class="symbol">: </span><a href="../-field-label/index.html"><span class="identifier">FieldLabel</span></a></code>
+<p>Form field label.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/input.html">input</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
+<p>The actual input component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/size.html">size</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/validation-info.html">validationInfo</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">validationInfo</span><span class="symbol">: </span><a href="../-help-block/index.html"><span class="identifier">HelpBlock</span></a></code>
+<p>Validation info component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/validator-error.html">validatorError</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">validatorError</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Validator error message.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="get-value.html">getValue</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getValue</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><span class="symbol">&gt;</span><span class="symbol">?</span></code>
+<p>Returns the value of the control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-value-as-string.html">getValueAsString</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getValueAsString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Returns the value of the control as a String.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="set-value.html">setValue</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FilesFormControl$setValue(kotlin.Any)/v">v</span><span class="symbol">:</span>&nbsp;<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><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Sets the value of the control.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../-form-control/blur.html">blur</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">blur</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Makes the input element blur.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-form-control/focus.html">focus</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">focus</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Makes the input element focused.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.upload/-upload/index.html">Upload</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Upload</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FilesFormControl</span></a></code>
+<p>The form field file upload component.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-files-form-control/set-value.html b/api/pl.treksoft.kvision.form/-files-form-control/set-value.html
new file mode 100644
index 00000000..ceefa66c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-files-form-control/set-value.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FilesFormControl.setValue - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FilesFormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.FilesFormControl$setValue(kotlin.Any)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FilesFormControl$setValue(kotlin.Any)/v">v</span><span class="symbol">:</span>&nbsp;<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><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Overrides <a href="../-form-control/set-value.html">FormControl.setValue</a></p>
+<p>Sets the value of the control.</p>
+<h3>Parameters</h3>
+<p><a name="v"></a>
+<code>v</code> - the value</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-files-form-control/value.html b/api/pl.treksoft.kvision.form/-files-form-control/value.html
new file mode 100644
index 00000000..51770986
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-files-form-control/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FilesFormControl.value - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FilesFormControl</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.FilesFormControl$value"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">value</span><span class="symbol">: </span><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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><span class="symbol">&gt;</span><span class="symbol">?</span></code>
+<p>List of files value.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/disabled.html b/api/pl.treksoft.kvision.form/-form-control/disabled.html
index ac5dc5aa..81099781 100644
--- a/api/pl.treksoft.kvision.form/-form-control/disabled.html
+++ b/api/pl.treksoft.kvision.form/-form-control/disabled.html
@@ -9,7 +9,7 @@
<br/>
<h1>disabled</h1>
<a name="pl.treksoft.kvision.form.FormControl$disabled"></a>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/index.html b/api/pl.treksoft.kvision.form/-form-control/index.html
index 5173b862..8fe99e19 100644
--- a/api/pl.treksoft.kvision.form/-form-control/index.html
+++ b/api/pl.treksoft.kvision.form/-form-control/index.html
@@ -18,7 +18,7 @@
<p><a href="disabled.html">disabled</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</td>
</tr>
@@ -36,17 +36,26 @@
<p><a href="input.html">input</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</td>
</tr>
<tr>
<td>
+<p><a href="name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="size.html">size</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</td>
</tr>
<tr>
@@ -77,7 +86,7 @@
<p><a href="../../pl.treksoft.kvision.core/-component/parent.html">parent</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">parent</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">?</span></code>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">parent</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">?</span></code>
<p>Parent of the current component.</p>
</td>
</tr>
@@ -233,6 +242,15 @@
</tr>
<tr>
<td>
+<p><a href="../-files-form-control/index.html">FilesFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">FilesFormControl</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">FormControl</span></a></code>
+<p>Base interface of a form control with a list of files value.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../-number-form-control/index.html">NumberFormControl</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form/-form-control/input.html b/api/pl.treksoft.kvision.form/-form-control/input.html
index 6ed80ddd..8d3ba88e 100644
--- a/api/pl.treksoft.kvision.form/-form-control/input.html
+++ b/api/pl.treksoft.kvision.form/-form-control/input.html
@@ -9,7 +9,7 @@
<br/>
<h1>input</h1>
<a name="pl.treksoft.kvision.form.FormControl$input"></a>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/name.html b/api/pl.treksoft.kvision.form/-form-control/name.html
new file mode 100644
index 00000000..d92e4636
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/name.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.name - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormControl</a>&nbsp;/&nbsp;<a href="./name.html">name</a><br/>
+<br/>
+<h1>name</h1>
+<a name="pl.treksoft.kvision.form.FormControl$name"></a>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/size.html b/api/pl.treksoft.kvision.form/-form-control/size.html
index 21465a15..270bcbc8 100644
--- a/api/pl.treksoft.kvision.form/-form-control/size.html
+++ b/api/pl.treksoft.kvision.form/-form-control/size.html
@@ -9,7 +9,7 @@
<br/>
<h1>size</h1>
<a name="pl.treksoft.kvision.form.FormControl$size"></a>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-enctype/-m-u-l-t-i-p-a-r-t.html b/api/pl.treksoft.kvision.form/-form-enctype/-m-u-l-t-i-p-a-r-t.html
new file mode 100644
index 00000000..e9d92a1a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-enctype/-m-u-l-t-i-p-a-r-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormEnctype.MULTIPART - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormEnctype</a>&nbsp;/&nbsp;<a href="./-m-u-l-t-i-p-a-r-t.html">MULTIPART</a><br/>
+<br/>
+<h1>MULTIPART</h1>
+<a name="pl.treksoft.kvision.form.FormEnctype.MULTIPART"></a>
+<code><span class="identifier">MULTIPART</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-enctype/-p-l-a-i-n.html b/api/pl.treksoft.kvision.form/-form-enctype/-p-l-a-i-n.html
new file mode 100644
index 00000000..26dd0456
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-enctype/-p-l-a-i-n.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormEnctype.PLAIN - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormEnctype</a>&nbsp;/&nbsp;<a href="./-p-l-a-i-n.html">PLAIN</a><br/>
+<br/>
+<h1>PLAIN</h1>
+<a name="pl.treksoft.kvision.form.FormEnctype.PLAIN"></a>
+<code><span class="identifier">PLAIN</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-enctype/-u-r-l-e-n-c-o-d-e-d.html b/api/pl.treksoft.kvision.form/-form-enctype/-u-r-l-e-n-c-o-d-e-d.html
new file mode 100644
index 00000000..14e69ebc
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-enctype/-u-r-l-e-n-c-o-d-e-d.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormEnctype.URLENCODED - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormEnctype</a>&nbsp;/&nbsp;<a href="./-u-r-l-e-n-c-o-d-e-d.html">URLENCODED</a><br/>
+<br/>
+<h1>URLENCODED</h1>
+<a name="pl.treksoft.kvision.form.FormEnctype.URLENCODED"></a>
+<code><span class="identifier">URLENCODED</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-enctype/index.html b/api/pl.treksoft.kvision.form/-form-enctype/index.html
new file mode 100644
index 00000000..3665460a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-enctype/index.html
@@ -0,0 +1,40 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormEnctype - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="./index.html">FormEnctype</a><br/>
+<br/>
+<h1>FormEnctype</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormEnctype</span></code>
+<p>Form encoding types.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-u-r-l-e-n-c-o-d-e-d.html">URLENCODED</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-m-u-l-t-i-p-a-r-t.html">MULTIPART</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-p-l-a-i-n.html">PLAIN</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-input/disabled.html b/api/pl.treksoft.kvision.form/-form-input/disabled.html
new file mode 100644
index 00000000..be64c7f7
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-input/disabled.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormInput.disabled - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormInput</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<br/>
+<h1>disabled</h1>
+<a name="pl.treksoft.kvision.form.FormInput$disabled"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if the field is disabled.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-input/index.html b/api/pl.treksoft.kvision.form/-form-input/index.html
new file mode 100644
index 00000000..fd61b517
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-input/index.html
@@ -0,0 +1,195 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormInput - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="./index.html">FormInput</a><br/>
+<br/>
+<h1>FormInput</h1>
+<code><span class="keyword">interface </span><span class="identifier">FormInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="disabled.html">disabled</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if the field is disabled.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="size.html">size</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/parent.html">parent</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">parent</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">?</span></code>
+<p>Parent of the current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/visible.html">visible</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">visible</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Visibility state of the current component.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/add-css-class.html">addCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Component$addCssClass(kotlin.String)/css">css</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><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Adds given value to the set of CSS classes generated in html code of current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/add-surrounding-css-class.html">addSurroundingCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addSurroundingCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Component$addSurroundingCssClass(kotlin.String)/css">css</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><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Adds given value to the set of CSS classes generated in html code of parent component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/get-element.html">getElement</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getElement</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-node/index.html"><span class="identifier">Node</span></a><span class="symbol">?</span></code>
+<p>Returns DOM element bound to the current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/get-element-j-query.html">getElementJQuery</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getElementJQuery</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">JQuery</span><span class="symbol">?</span></code>
+<p>Returns JQuery element bound to the current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/get-element-j-query-d.html">getElementJQueryD</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getElementJQueryD</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Returns JQuery element bound to the current component as a <em>dynamic</em> type.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/remove-css-class.html">removeCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">removeCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Component$removeCssClass(kotlin.String)/css">css</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><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Removes given value from the set of CSS classes generated in html code of current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-component/remove-surrounding-css-class.html">removeSurroundingCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">removeSurroundingCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Component$removeSurroundingCssClass(kotlin.String)/css">css</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><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Removes given value from the set of CSS classes generated in html code of parent component.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.text/-abstract-text-input/index.html">AbstractTextInput</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">class </span><span class="identifier">AbstractTextInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>Base class for basic text components.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.check/-check-input/index.html">CheckInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">CheckInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>The basic input component rendered as HTML <em>input type="checkbox"</em> or <em>input type="radio"</em>.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.time/-date-time-input/index.html">DateTimeInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">DateTimeInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>Basic date/time chooser component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.select/-select-input/index.html">SelectInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>The basic component for Select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.spinner/-spinner-input/index.html">SpinnerInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SpinnerInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>The basic component for spinner control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.upload/-upload-input/index.html">UploadInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">UploadInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">FormInput</span></a></code>
+<p>The file upload component.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-input/name.html b/api/pl.treksoft.kvision.form/-form-input/name.html
new file mode 100644
index 00000000..8d920881
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-input/name.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormInput.name - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormInput</a>&nbsp;/&nbsp;<a href="./name.html">name</a><br/>
+<br/>
+<h1>name</h1>
+<a name="pl.treksoft.kvision.form.FormInput$name"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-input/size.html b/api/pl.treksoft.kvision.form/-form-input/size.html
new file mode 100644
index 00000000..2952df45
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-input/size.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormInput.size - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormInput</a>&nbsp;/&nbsp;<a href="./size.html">size</a><br/>
+<br/>
+<h1>size</h1>
+<a name="pl.treksoft.kvision.form.FormInput$size"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-method/-g-e-t.html b/api/pl.treksoft.kvision.form/-form-method/-g-e-t.html
new file mode 100644
index 00000000..275e9644
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-method/-g-e-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormMethod.GET - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormMethod</a>&nbsp;/&nbsp;<a href="./-g-e-t.html">GET</a><br/>
+<br/>
+<h1>GET</h1>
+<a name="pl.treksoft.kvision.form.FormMethod.GET"></a>
+<code><span class="identifier">GET</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-method/-p-o-s-t.html b/api/pl.treksoft.kvision.form/-form-method/-p-o-s-t.html
new file mode 100644
index 00000000..b7040ea2
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-method/-p-o-s-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormMethod.POST - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormMethod</a>&nbsp;/&nbsp;<a href="./-p-o-s-t.html">POST</a><br/>
+<br/>
+<h1>POST</h1>
+<a name="pl.treksoft.kvision.form.FormMethod.POST"></a>
+<code><span class="identifier">POST</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-method/index.html b/api/pl.treksoft.kvision.form/-form-method/index.html
new file mode 100644
index 00000000..71b22828
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-method/index.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormMethod - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="./index.html">FormMethod</a><br/>
+<br/>
+<h1>FormMethod</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormMethod</span></code>
+<p>Form methods.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-g-e-t.html">GET</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-p-o-s-t.html">POST</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/-init-.html b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
index 754f2a51..e2eb6cf7 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/-init-.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
@@ -8,11 +8,17 @@
<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="./-init-.html">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$&lt;init&gt;(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))"></a>
-<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$&lt;init&gt;(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))"></a>
+<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/action">action</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span></code>
<h3>Parameters</h3>
<p><a name="K"></a>
<code>K</code> - model class type</p>
+<p><a name="method"></a>
+<code>method</code> - HTTP method</p>
+<p><a name="action"></a>
+<code>action</code> - the URL address to send data</p>
+<p><a name="enctype"></a>
+<code>enctype</code> - form encoding type</p>
<p><a name="type"></a>
<code>type</code> - form layout</p>
<p><a name="classes"></a>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/action.html b/api/pl.treksoft.kvision.form/-form-panel/action.html
new file mode 100644
index 00000000..0c8c0b9c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/action.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.action - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./action.html">action</a><br/>
+<br/>
+<h1>action</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$action"></a>
+<code><span class="keyword">var </span><span class="identifier">action</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The URL address to send data.</p>
+<p><strong>Getter</strong><br/>
+<p>The URL address to send data.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>The URL address to send data.</p>
+</p>
+</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 4d325c15..0c9fd3ca 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/add.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/add.html
@@ -72,5 +72,21 @@ current form panel</p>
<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((org.w3c.files.File)))), 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="../-files-form-control/index.html"><span class="identifier">FilesFormControl</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((org.w3c.files.File)))), 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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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>
+<p>Adds a files control to the form panel.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><a name="control"></a>
+<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="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>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/autocomplete.html b/api/pl.treksoft.kvision.form/-form-panel/autocomplete.html
new file mode 100644
index 00000000..ac2784b1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/autocomplete.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.autocomplete - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./autocomplete.html">autocomplete</a><br/>
+<br/>
+<h1>autocomplete</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$autocomplete"></a>
+<code><span class="keyword">var </span><span class="identifier">autocomplete</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the form should have autocomplete.</p>
+<p><strong>Getter</strong><br/>
+<p>Determines if the form should have autocomplete.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>Determines if the form should have autocomplete.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/enctype.html b/api/pl.treksoft.kvision.form/-form-panel/enctype.html
new file mode 100644
index 00000000..a1bb7f09
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/enctype.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.enctype - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./enctype.html">enctype</a><br/>
+<br/>
+<h1>enctype</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$enctype"></a>
+<code><span class="keyword">var </span><span class="identifier">enctype</span><span class="symbol">: </span><a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</span></a><span class="symbol">?</span></code>
+<p>The form encoding type.</p>
+<p><strong>Getter</strong><br/>
+<p>The form encoding type.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>The form encoding type.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/form-panel.html b/api/pl.treksoft.kvision.form/-form-panel/form-panel.html
index 6410911f..11590ed4 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/form-panel.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/form-panel.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="./form-panel.html">formPanel</a><br/>
<br/>
<h1>formPanel</h1>
-<a name="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">formPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="form-panel.html#K"><span class="identifier">K</span></a><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="form-panel.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">formPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/action">action</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="form-panel.html#K"><span class="identifier">K</span></a><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="form-panel.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>DSL builder extension function.</p>
<p>It takes the same parameters as the constructor of the built component.</p>
</BODY>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html b/api/pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html
new file mode 100644
index 00000000..6a222e89
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.getSnAttrs - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./get-sn-attrs.html">getSnAttrs</a><br/>
+<br/>
+<h1>getSnAttrs</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$getSnAttrs()"></a>
+<code><span class="keyword">protected</span> <span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnAttrs</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><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><a href="../../pl.treksoft.kvision.core/-string-pair.html"><span class="identifier">StringPair</span></a><span class="symbol">&gt;</span></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.core/-widget/get-sn-attrs.html">Widget.getSnAttrs</a></p>
+<p>Returns list of element attributes in the form of a List.</p>
+<p><strong>Return</strong><br/>
+list of element attributes</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/index.html b/api/pl.treksoft.kvision.form/-form-panel/index.html
index 2a99b314..8268f58f 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/index.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/index.html
@@ -18,7 +18,7 @@
<p><a href="-init-.html">&lt;init&gt;</a></p>
</td>
<td>
-<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span></code></td>
+<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/action">action</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span></code></td>
</tr>
</tbody>
</table>
@@ -27,6 +27,69 @@
<tbody>
<tr>
<td>
+<p><a href="action.html">action</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">action</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The URL address to send data.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="autocomplete.html">autocomplete</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">autocomplete</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the form should have autocomplete.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="enctype.html">enctype</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">enctype</span><span class="symbol">: </span><a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</span></a><span class="symbol">?</span></code>
+<p>The form encoding type.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="method.html">method</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">method</span><span class="symbol">: </span><a href="../-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span></code>
+<p>HTTP method.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The form name.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="novalidate.html">novalidate</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">novalidate</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the form is not validated.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="target.html">target</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">target</span><span class="symbol">: </span><a href="../-form-target/index.html"><span class="identifier">FormTarget</span></a><span class="symbol">?</span></code>
+<p>The form target.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="validator.html">validator</a></p>
</td>
<td>
@@ -61,6 +124,8 @@
<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="../-date-form-control/index.html"><span class="identifier">DateFormControl</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.js.Date)), 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.js/-date/index.html"><span class="identifier">Date</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.js.Date)), 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.js.Date)), 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.js.Date)), 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.js.Date)), 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>
<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="../-files-form-control/index.html"><span class="identifier">FilesFormControl</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((org.w3c.files.File)))), 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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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>
+<p>Adds a files control to the form panel.</p>
</td>
</tr>
<tr>
@@ -117,6 +182,15 @@
</tr>
<tr>
<td>
+<p><a href="get-sn-attrs.html">getSnAttrs</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnAttrs</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><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><a href="../../pl.treksoft.kvision.core/-string-pair.html"><span class="identifier">StringPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of element attributes in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="get-sn-class.html">getSnClass</a></p>
</td>
<td>
@@ -238,7 +312,7 @@
<p><a href="form-panel.html">formPanel</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">formPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="form-panel.html#K"><span class="identifier">K</span></a><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="form-panel.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">K</span><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">formPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/action">action</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</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.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</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">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel.Companion$formPanel(pl.treksoft.kvision.core.Container, pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.collections.Set((kotlin.String)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.Companion.formPanel.K)))/modelFactory">modelFactory</span><span class="symbol">:</span>&nbsp;<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;<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">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="form-panel.html#K"><span class="identifier">K</span></a><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="form-panel.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
<p>DSL builder extension function.</p>
</td>
</tr>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/method.html b/api/pl.treksoft.kvision.form/-form-panel/method.html
new file mode 100644
index 00000000..7ca06019
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/method.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.method - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./method.html">method</a><br/>
+<br/>
+<h1>method</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$method"></a>
+<code><span class="keyword">var </span><span class="identifier">method</span><span class="symbol">: </span><a href="../-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span></code>
+<p>HTTP method.</p>
+<p><strong>Getter</strong><br/>
+<p>HTTP method.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>HTTP method.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/name.html b/api/pl.treksoft.kvision.form/-form-panel/name.html
new file mode 100644
index 00000000..6bd945d4
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/name.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.name - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./name.html">name</a><br/>
+<br/>
+<h1>name</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$name"></a>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The form name.</p>
+<p><strong>Getter</strong><br/>
+<p>The form name.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>The form name.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/novalidate.html b/api/pl.treksoft.kvision.form/-form-panel/novalidate.html
new file mode 100644
index 00000000..fdd7b2f5
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/novalidate.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.novalidate - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./novalidate.html">novalidate</a><br/>
+<br/>
+<h1>novalidate</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$novalidate"></a>
+<code><span class="keyword">var </span><span class="identifier">novalidate</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the form is not validated.</p>
+<p><strong>Getter</strong><br/>
+<p>Determines if the form is not validated.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>Determines if the form is not validated.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/target.html b/api/pl.treksoft.kvision.form/-form-panel/target.html
new file mode 100644
index 00000000..97f36931
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/target.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.target - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<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="./target.html">target</a><br/>
+<br/>
+<h1>target</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$target"></a>
+<code><span class="keyword">var </span><span class="identifier">target</span><span class="symbol">: </span><a href="../-form-target/index.html"><span class="identifier">FormTarget</span></a><span class="symbol">?</span></code>
+<p>The form target.</p>
+<p><strong>Getter</strong><br/>
+<p>The form target.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>The form target.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-target/-b-l-a-n-k.html b/api/pl.treksoft.kvision.form/-form-target/-b-l-a-n-k.html
new file mode 100644
index 00000000..58958b51
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-target/-b-l-a-n-k.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormTarget.BLANK - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormTarget</a>&nbsp;/&nbsp;<a href="./-b-l-a-n-k.html">BLANK</a><br/>
+<br/>
+<h1>BLANK</h1>
+<a name="pl.treksoft.kvision.form.FormTarget.BLANK"></a>
+<code><span class="identifier">BLANK</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-target/-p-a-r-e-n-t.html b/api/pl.treksoft.kvision.form/-form-target/-p-a-r-e-n-t.html
new file mode 100644
index 00000000..c90e7bf1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-target/-p-a-r-e-n-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormTarget.PARENT - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormTarget</a>&nbsp;/&nbsp;<a href="./-p-a-r-e-n-t.html">PARENT</a><br/>
+<br/>
+<h1>PARENT</h1>
+<a name="pl.treksoft.kvision.form.FormTarget.PARENT"></a>
+<code><span class="identifier">PARENT</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-target/-s-e-l-f.html b/api/pl.treksoft.kvision.form/-form-target/-s-e-l-f.html
new file mode 100644
index 00000000..f55d9d2a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-target/-s-e-l-f.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormTarget.SELF - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormTarget</a>&nbsp;/&nbsp;<a href="./-s-e-l-f.html">SELF</a><br/>
+<br/>
+<h1>SELF</h1>
+<a name="pl.treksoft.kvision.form.FormTarget.SELF"></a>
+<code><span class="identifier">SELF</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-target/-t-o-p.html b/api/pl.treksoft.kvision.form/-form-target/-t-o-p.html
new file mode 100644
index 00000000..d7be069a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-target/-t-o-p.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormTarget.TOP - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormTarget</a>&nbsp;/&nbsp;<a href="./-t-o-p.html">TOP</a><br/>
+<br/>
+<h1>TOP</h1>
+<a name="pl.treksoft.kvision.form.FormTarget.TOP"></a>
+<code><span class="identifier">TOP</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-target/index.html b/api/pl.treksoft.kvision.form/-form-target/index.html
new file mode 100644
index 00000000..16ee0f8c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-target/index.html
@@ -0,0 +1,47 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormTarget - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="./index.html">FormTarget</a><br/>
+<br/>
+<h1>FormTarget</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormTarget</span></code>
+<p>Form targets.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-b-l-a-n-k.html">BLANK</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-s-e-l-f.html">SELF</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-p-a-r-e-n-t.html">PARENT</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-t-o-p.html">TOP</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/add.html b/api/pl.treksoft.kvision.form/-form/add.html
index 13098c33..2980cadf 100644
--- a/api/pl.treksoft.kvision.form/-form/add.html
+++ b/api/pl.treksoft.kvision.form/-form/add.html
@@ -72,5 +72,21 @@ current form</p>
<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((org.w3c.files.File)))), 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="../-files-form-control/index.html"><span class="identifier">FilesFormControl</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((org.w3c.files.File)))), 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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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>
+<p>Adds a files control to the form.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><a name="control"></a>
+<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="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>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/index.html b/api/pl.treksoft.kvision.form/-form/index.html
index 8686b022..47af0804 100644
--- a/api/pl.treksoft.kvision.form/-form/index.html
+++ b/api/pl.treksoft.kvision.form/-form/index.html
@@ -40,6 +40,8 @@
<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="../-date-form-control/index.html"><span class="identifier">DateFormControl</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.js.Date)), 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.js/-date/index.html"><span class="identifier">Date</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.js.Date)), 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.js.Date)), 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.js.Date)), 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.js.Date)), 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>
<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="../-files-form-control/index.html"><span class="identifier">FilesFormControl</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((org.w3c.files.File)))), 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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.files/-file/index.html"><span class="identifier">File</span></a><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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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((org.w3c.files.File)))), 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>
+<p>Adds a files control to the form.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-help-block/-init-.html b/api/pl.treksoft.kvision.form/-help-block/-init-.html
index 47e893e4..104d8fd8 100644
--- a/api/pl.treksoft.kvision.form/-help-block/-init-.html
+++ b/api/pl.treksoft.kvision.form/-help-block/-init-.html
@@ -9,12 +9,12 @@
<br/>
<h1>&lt;init&gt;</h1>
<a name="pl.treksoft.kvision.form.HelpBlock$&lt;init&gt;(kotlin.String, kotlin.Boolean)"></a>
-<code><span class="identifier">HelpBlock</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/text">text</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.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/rich">rich</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></code>
+<code><span class="identifier">HelpBlock</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/content">content</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.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/rich">rich</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></code>
<h3>Parameters</h3>
-<p><a name="text"></a>
-<code>text</code> - the text of the label</p>
+<p><a name="content"></a>
+<code>content</code> - the text of the label</p>
<p><a name="rich"></a>
-<code>rich</code> - determines if <a href="-init-.html#pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/text">text</a> can contain HTML code</p>
+<code>rich</code> - determines if <a href="-init-.html#pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/content">content</a> can contain HTML code</p>
<p><strong>Constructor</strong><br/>
</p>
</BODY>
diff --git a/api/pl.treksoft.kvision.form/-help-block/index.html b/api/pl.treksoft.kvision.form/-help-block/index.html
index ba60713e..6d0ef9e5 100644
--- a/api/pl.treksoft.kvision.form/-help-block/index.html
+++ b/api/pl.treksoft.kvision.form/-help-block/index.html
@@ -18,7 +18,7 @@
<p><a href="-init-.html">&lt;init&gt;</a></p>
</td>
<td>
-<code><span class="identifier">HelpBlock</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/text">text</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.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/rich">rich</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></code></td>
+<code><span class="identifier">HelpBlock</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/content">content</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.HelpBlock$<init>(kotlin.String, kotlin.Boolean)/rich">rich</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></code></td>
</tr>
</tbody>
</table>
@@ -36,20 +36,29 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/content.html">content</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">content</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Text content of the tag.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.html/-tag/rich.html">rich</a></p>
</td>
<td>
-<code><span class="keyword">var </span><span class="identifier">rich</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
-<p>Determines if <a href="../../pl.treksoft.kvision.html/-tag/text.html">text</a> can contain HTML code.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">rich</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if <a href="../../pl.treksoft.kvision.html/-tag/content.html">content</a> can contain HTML code.</p>
</td>
</tr>
<tr>
<td>
-<p><a href="../../pl.treksoft.kvision.html/-tag/text.html">text</a></p>
+<p><a href="../../pl.treksoft.kvision.html/-tag/template.html">template</a></p>
</td>
<td>
-<code><span class="keyword">var </span><span class="identifier">text</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
-<p>Text content of the tag.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">template</span><span class="symbol">: </span><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></code>
+<p>Handlebars template.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-number-form-control/index.html b/api/pl.treksoft.kvision.form/-number-form-control/index.html
index 1851078e..3795c77c 100644
--- a/api/pl.treksoft.kvision.form/-number-form-control/index.html
+++ b/api/pl.treksoft.kvision.form/-number-form-control/index.html
@@ -32,7 +32,7 @@
<p><a href="../-form-control/disabled.html">disabled</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</td>
</tr>
@@ -50,17 +50,26 @@
<p><a href="../-form-control/input.html">input</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</td>
</tr>
<tr>
<td>
+<p><a href="../-form-control/name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../-form-control/size.html">size</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/-string-form-control/index.html b/api/pl.treksoft.kvision.form/-string-form-control/index.html
index a2d551fb..2b6d030d 100644
--- a/api/pl.treksoft.kvision.form/-string-form-control/index.html
+++ b/api/pl.treksoft.kvision.form/-string-form-control/index.html
@@ -32,7 +32,7 @@
<p><a href="../-form-control/disabled.html">disabled</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
<p>Determines if the field is disabled.</p>
</td>
</tr>
@@ -50,17 +50,26 @@
<p><a href="../-form-control/input.html">input</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-form-input/index.html"><span class="identifier">FormInput</span></a></code>
<p>The actual input component.</p>
</td>
</tr>
<tr>
<td>
+<p><a href="../-form-control/name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML input element.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../-form-control/size.html">size</a></p>
</td>
<td>
-<code><span class="keyword">abstract</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
-<p>Input control size.</p>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../-input-size/index.html"><span class="identifier">InputSize</span></a><span class="symbol">?</span></code>
+<p>Input control field size.</p>
</td>
</tr>
<tr>
diff --git a/api/pl.treksoft.kvision.form/index.html b/api/pl.treksoft.kvision.form/index.html
index 54e330fd..697f5400 100644
--- a/api/pl.treksoft.kvision.form/index.html
+++ b/api/pl.treksoft.kvision.form/index.html
@@ -42,6 +42,15 @@ validation.</p>
</tr>
<tr>
<td>
+<p><a href="-files-form-control/index.html">FilesFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">FilesFormControl</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="-form-control/index.html"><span class="identifier">FormControl</span></a></code>
+<p>Base interface of a form control with a list of files value.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="-form/index.html">Form</a></p>
</td>
<td>
@@ -60,6 +69,31 @@ validation.</p>
</tr>
<tr>
<td>
+<p><a href="-form-enctype/index.html">FormEnctype</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormEnctype</span></code>
+<p>Form encoding types.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-form-input/index.html">FormInput</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">FormInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-form-method/index.html">FormMethod</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormMethod</span></code>
+<p>Form methods.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="-form-panel/index.html">FormPanel</a></p>
</td>
<td>
@@ -69,6 +103,15 @@ validation.</p>
</tr>
<tr>
<td>
+<p><a href="-form-target/index.html">FormTarget</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormTarget</span></code>
+<p>Form targets.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="-form-type/index.html">FormType</a></p>
</td>
<td>