aboutsummaryrefslogtreecommitdiff
path: root/api/pl.treksoft.kvision.form
diff options
context:
space:
mode:
Diffstat (limited to 'api/pl.treksoft.kvision.form')
-rw-r--r--api/pl.treksoft.kvision.form/-bool-form-control/get-value-as-string.html16
-rw-r--r--api/pl.treksoft.kvision.form/-bool-form-control/get-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-bool-form-control/index.html142
-rw-r--r--api/pl.treksoft.kvision.form/-bool-form-control/set-value.html19
-rw-r--r--api/pl.treksoft.kvision.form/-bool-form-control/value.html15
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/get-value-as-string.html16
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/get-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/index.html133
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/set-value.html19
-rw-r--r--api/pl.treksoft.kvision.form/-date-form-control/value.html15
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/-init-.html25
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/get-sn-attrs.html18
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/index.html104
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/disabled.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/flabel.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/get-value-as-string.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/get-value.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/index.html237
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/input.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/set-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/size.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/validation-info.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-control/validator-error.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/-init-.html25
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add.html28
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/clear-data.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/form-panel.html16
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-control.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-data-json.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-data.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-sn-class.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/index.html235
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/remove-all.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/remove.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/render.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/set-data.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/validate.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/validator-message.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/validator.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form-type/-h-o-r-i-z-o-n-t-a-l.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-type/-i-n-l-i-n-e.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-type/index.html33
-rw-r--r--api/pl.treksoft.kvision.form/-form/-init-.html24
-rw-r--r--api/pl.treksoft.kvision.form/-form/add.html28
-rw-r--r--api/pl.treksoft.kvision.form/-form/clear-data.html15
-rw-r--r--api/pl.treksoft.kvision.form/-form/get-control.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form/get-data-json.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form/get-data.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form/get.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form/index.html123
-rw-r--r--api/pl.treksoft.kvision.form/-form/remove-all.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form/remove.html20
-rw-r--r--api/pl.treksoft.kvision.form/-form/set-data.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form/validate.html17
-rw-r--r--api/pl.treksoft.kvision.form/-help-block/-init-.html21
-rw-r--r--api/pl.treksoft.kvision.form/-help-block/index.html90
-rw-r--r--api/pl.treksoft.kvision.form/-input-size/-l-a-r-g-e.html26
-rw-r--r--api/pl.treksoft.kvision.form/-input-size/-s-m-a-l-l.html26
-rw-r--r--api/pl.treksoft.kvision.form/-input-size/class-name.html14
-rw-r--r--api/pl.treksoft.kvision.form/-input-size/index.html45
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/get-value-as-string.html16
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/get-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/index.html133
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/set-value.html19
-rw-r--r--api/pl.treksoft.kvision.form/-number-form-control/value.html15
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/get-value-as-string.html16
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/get-value.html18
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/index.html151
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/set-value.html19
-rw-r--r--api/pl.treksoft.kvision.form/-string-form-control/value.html15
-rw-r--r--api/pl.treksoft.kvision.form/index.html130
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/as-json.html15
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/bool.html15
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/date.html15
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/index.html61
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/number.html15
-rw-r--r--api/pl.treksoft.kvision.form/kotlin.collections.-map/string.html15
78 files changed, 2772 insertions, 0 deletions
diff --git a/api/pl.treksoft.kvision.form/-bool-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-bool-form-control/get-value-as-string.html
new file mode 100644
index 00000000..051170f1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/get-value-as-string.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>BoolFormControl.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">BoolFormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.BoolFormControl$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/-bool-form-control/get-value.html b/api/pl.treksoft.kvision.form/-bool-form-control/get-value.html
new file mode 100644
index 00000000..3e08a58c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/get-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>BoolFormControl.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">BoolFormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.BoolFormControl$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/-boolean/index.html"><span class="identifier">Boolean</span></a></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/-bool-form-control/index.html b/api/pl.treksoft.kvision.form/-bool-form-control/index.html
new file mode 100644
index 00000000..85fe7ef1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/index.html
@@ -0,0 +1,142 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>BoolFormControl - 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">BoolFormControl</a><br/>
+<br/>
+<h1>BoolFormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">BoolFormControl</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 boolean 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/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Boolean 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">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="../-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="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>The actual input component.</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>
+</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/-boolean/index.html"><span class="identifier">Boolean</span></a></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.BoolFormControl$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>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.check/-check-box/index.html">CheckBox</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">CheckBox</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">BoolFormControl</span></a></code>
+<p>The form field component rendered as HTML <em>input type="checkbox"</em>.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.check/-radio/index.html">Radio</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Radio</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">BoolFormControl</span></a></code>
+<p>The form field component rendered as HTML <em>input type="radio"</em>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-bool-form-control/set-value.html b/api/pl.treksoft.kvision.form/-bool-form-control/set-value.html
new file mode 100644
index 00000000..66079b74
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/set-value.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>BoolFormControl.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">BoolFormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.BoolFormControl$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.BoolFormControl$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/-bool-form-control/value.html b/api/pl.treksoft.kvision.form/-bool-form-control/value.html
new file mode 100644
index 00000000..83a96ef7
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-bool-form-control/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>BoolFormControl.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">BoolFormControl</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.BoolFormControl$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/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Boolean value.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-date-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-date-form-control/get-value-as-string.html
new file mode 100644
index 00000000..8ec76a28
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-date-form-control/get-value-as-string.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DateFormControl.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">DateFormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.DateFormControl$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/-date-form-control/get-value.html b/api/pl.treksoft.kvision.form/-date-form-control/get-value.html
new file mode 100644
index 00000000..9f2ce3e6
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-date-form-control/get-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DateFormControl.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">DateFormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.DateFormControl$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.js/-date/index.html"><span class="identifier">Date</span></a><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/-date-form-control/index.html b/api/pl.treksoft.kvision.form/-date-form-control/index.html
new file mode 100644
index 00000000..246ef6ea
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-date-form-control/index.html
@@ -0,0 +1,133 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DateFormControl - 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">DateFormControl</a><br/>
+<br/>
+<h1>DateFormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">DateFormControl</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 date 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.js/-date/index.html"><span class="identifier">Date</span></a><span class="symbol">?</span></code>
+<p>Date 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">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="../-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="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>The actual input component.</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>
+</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.js/-date/index.html"><span class="identifier">Date</span></a><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.DateFormControl$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>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.time/-date-time/index.html">DateTime</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">DateTime</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">DateFormControl</span></a></code>
+<p>Form field date/time chooser component.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-date-form-control/set-value.html b/api/pl.treksoft.kvision.form/-date-form-control/set-value.html
new file mode 100644
index 00000000..7dd2477e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-date-form-control/set-value.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DateFormControl.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">DateFormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.DateFormControl$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.DateFormControl$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/-date-form-control/value.html b/api/pl.treksoft.kvision.form/-date-form-control/value.html
new file mode 100644
index 00000000..0d6d2079
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-date-form-control/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DateFormControl.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">DateFormControl</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.DateFormControl$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.js/-date/index.html"><span class="identifier">Date</span></a><span class="symbol">?</span></code>
+<p>Date value.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-field-label/-init-.html b/api/pl.treksoft.kvision.form/-field-label/-init-.html
new file mode 100644
index 00000000..329b7a8a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-field-label/-init-.html
@@ -0,0 +1,25 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FieldLabel.<init> - 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">FieldLabel</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<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>
+<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="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>
+<p><a name="classes"></a>
+<code>classes</code> - a set of CSS class names</p>
+<p><strong>Constructor</strong><br/>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-field-label/get-sn-attrs.html b/api/pl.treksoft.kvision.form/-field-label/get-sn-attrs.html
new file mode 100644
index 00000000..c34e5d58
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-field-label/get-sn-attrs.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FieldLabel.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">FieldLabel</a>&nbsp;/&nbsp;<a href="./get-sn-attrs.html">getSnAttrs</a><br/>
+<br/>
+<h1>getSnAttrs</h1>
+<a name="pl.treksoft.kvision.form.FieldLabel$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/-field-label/index.html b/api/pl.treksoft.kvision.form/-field-label/index.html
new file mode 100644
index 00000000..8aba67d7
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-field-label/index.html
@@ -0,0 +1,104 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FieldLabel - 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">FieldLabel</a><br/>
+<br/>
+<h1>FieldLabel</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">FieldLabel</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.html/-tag/index.html"><span class="identifier">Tag</span></a></code>
+<p>Helper class for HTML label element.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<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>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/align.html">align</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">align</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-align/index.html"><span class="identifier">Align</span></a><span class="symbol">?</span></code>
+<p>Text align.</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>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/text.html">text</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>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/type.html">type</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">type</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-t-a-g/index.html"><span class="identifier">TAG</span></a></code>
+<p>Tag type.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<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>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/get-sn-class.html">getSnClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnClass</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-bool-pair.html"><span class="identifier">StringBoolPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of CSS class names for current widget in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/render.html">render</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">render</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">VNode</span></code>
+<p>Renders current component as a Snabbdom vnode.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/disabled.html b/api/pl.treksoft.kvision.form/-form-control/disabled.html
new file mode 100644
index 00000000..ac5dc5aa
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/disabled.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.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">FormControl</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<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>
+<p>Determines if the field is disabled.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/flabel.html b/api/pl.treksoft.kvision.form/-form-control/flabel.html
new file mode 100644
index 00000000..51e4d46e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/flabel.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.flabel - 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="./flabel.html">flabel</a><br/>
+<br/>
+<h1>flabel</h1>
+<a name="pl.treksoft.kvision.form.FormControl$flabel"></a>
+<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>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-form-control/get-value-as-string.html
new file mode 100644
index 00000000..671320bf
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/get-value-as-string.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.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">FormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.FormControl$getValueAsString()"></a>
+<code><span class="keyword">abstract</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>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/get-value.html b/api/pl.treksoft.kvision.form/-form-control/get-value.html
new file mode 100644
index 00000000..6ac2fc1e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/get-value.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.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">FormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.FormControl$getValue()"></a>
+<code><span class="keyword">abstract</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/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+<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/-form-control/index.html b/api/pl.treksoft.kvision.form/-form-control/index.html
new file mode 100644
index 00000000..0a4fe3ff
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/index.html
@@ -0,0 +1,237 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl - 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><br/>
+<br/>
+<h1>FormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">FormControl</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Base interface of a form control.</p>
+<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="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="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>
+<p>The actual input component.</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>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="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="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>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/-component/index.html"><span class="identifier">Component</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>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="get-value.html">getValue</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</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/-any/index.html"><span class="identifier">Any</span></a><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">abstract</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">abstract</span> <span class="keyword">fun </span><span class="identifier">setValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormControl$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="../../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="../-bool-form-control/index.html">BoolFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">BoolFormControl</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 boolean value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-date-form-control/index.html">DateFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">DateFormControl</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 date value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-number-form-control/index.html">NumberFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">NumberFormControl</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 numeric value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../-string-form-control/index.html">StringFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">StringFormControl</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 text value.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/input.html b/api/pl.treksoft.kvision.form/-form-control/input.html
new file mode 100644
index 00000000..6ed80ddd
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/input.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.input - 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="./input.html">input</a><br/>
+<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>
+<p>The actual input component.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/set-value.html b/api/pl.treksoft.kvision.form/-form-control/set-value.html
new file mode 100644
index 00000000..ab425936
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/set-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.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">FormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.FormControl$setValue(kotlin.Any)"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">setValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormControl$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>
+<h3>Parameters</h3>
+<p><a name="v"></a>
+<code>v</code> - the value</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
new file mode 100644
index 00000000..21465a15
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/size.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.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">FormControl</a>&nbsp;/&nbsp;<a href="./size.html">size</a><br/>
+<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>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/validation-info.html b/api/pl.treksoft.kvision.form/-form-control/validation-info.html
new file mode 100644
index 00000000..e477d349
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/validation-info.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.validationInfo - 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="./validation-info.html">validationInfo</a><br/>
+<br/>
+<h1>validationInfo</h1>
+<a name="pl.treksoft.kvision.form.FormControl$validationInfo"></a>
+<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>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-control/validator-error.html b/api/pl.treksoft.kvision.form/-form-control/validator-error.html
new file mode 100644
index 00000000..9af55095
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-control/validator-error.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormControl.validatorError - 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="./validator-error.html">validatorError</a><br/>
+<br/>
+<h1>validatorError</h1>
+<a name="pl.treksoft.kvision.form.FormControl$validatorError"></a>
+<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>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/-init-.html b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
new file mode 100644
index 00000000..754f2a51
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
@@ -0,0 +1,25 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.<init> - 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="./-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>
+<h3>Parameters</h3>
+<p><a name="K"></a>
+<code>K</code> - model class type</p>
+<p><a name="type"></a>
+<code>type</code> - form layout</p>
+<p><a name="classes"></a>
+<code>classes</code> - set of CSS class names</p>
+<p><a name="modelFactory"></a>
+<code>modelFactory</code> - function transforming a Map&lt;String, Any?&gt; to a data model of class K</p>
+<p><strong>Constructor</strong><br/>
+</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
new file mode 100644
index 00000000..dabf16e2
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/add.html
@@ -0,0 +1,28 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.add - 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="./add.html">add</a><br/>
+<br/>
+<h1>add</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</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.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<p>Adds a 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 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/clear-data.html b/api/pl.treksoft.kvision.form/-form-panel/clear-data.html
new file mode 100644
index 00000000..78194286
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/clear-data.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.clearData - 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="./clear-data.html">clearData</a><br/>
+<br/>
+<h1>clearData</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$clearData()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">clearData</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>Sets the values of all controls to null.</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
new file mode 100644
index 00000000..6410911f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/form-panel.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.formPanel - 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="./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>
+<p>DSL builder extension function.</p>
+<p>It takes the same parameters as the constructor of the built component.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-control.html b/api/pl.treksoft.kvision.form/-form-panel/get-control.html
new file mode 100644
index 00000000..e3e8b15c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get-control.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.getControl - 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-control.html">getControl</a><br/>
+<br/>
+<h1>getControl</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$getControl(kotlin.String)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$getControl(kotlin.String)/key">key</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="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></code>
+<p>Returns a control of given key.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+selected control</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-data-json.html b/api/pl.treksoft.kvision.form/-form-panel/get-data-json.html
new file mode 100644
index 00000000..f472a575
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get-data-json.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.getDataJson - 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-data-json.html">getDataJson</a><br/>
+<br/>
+<h1>getDataJson</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$getDataJson()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns current data model as JSON.</p>
+<p><strong>Return</strong><br/>
+data model as JSON</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-data.html b/api/pl.treksoft.kvision.form/-form-panel/get-data.html
new file mode 100644
index 00000000..c66e11c1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get-data.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.getData - 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-data.html">getData</a><br/>
+<br/>
+<h1>getData</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$getData()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model.</p>
+<p><strong>Return</strong><br/>
+data model</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-sn-class.html b/api/pl.treksoft.kvision.form/-form-panel/get-sn-class.html
new file mode 100644
index 00000000..dd839778
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get-sn-class.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.getSnClass - 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-class.html">getSnClass</a><br/>
+<br/>
+<h1>getSnClass</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$getSnClass()"></a>
+<code><span class="keyword">protected</span> <span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnClass</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-bool-pair.html"><span class="identifier">StringBoolPair</span></a><span class="symbol">&gt;</span></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.core/-widget/get-sn-class.html">Widget.getSnClass</a></p>
+<p>Returns list of CSS class names for current widget in the form of a List.</p>
+<p><strong>Return</strong><br/>
+list of CSS class names</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get.html b/api/pl.treksoft.kvision.form/-form-panel/get.html
new file mode 100644
index 00000000..dd82feb1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/get.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.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">FormPanel</a>&nbsp;/&nbsp;<a href="./get.html">get</a><br/>
+<br/>
+<h1>get</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$get(kotlin.String)"></a>
+<code><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$get(kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+<p>Returns a value of the control of given key.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+value of the control</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
new file mode 100644
index 00000000..99e379a8
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/index.html
@@ -0,0 +1,235 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel - 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><br/>
+<br/>
+<h1>FormPanel</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">FormPanel</span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Bootstrap form component.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<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>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="validator.html">validator</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">validator</span><span class="symbol">: </span><span class="symbol">(</span><a href="../-form/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><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></code>
+<p>Validation function.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="validator-message.html">validatorMessage</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">validatorMessage</span><span class="symbol">: </span><span class="symbol">(</span><a href="../-form/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><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></code>
+<p>Function returning validation message.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="add.html">add</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</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.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.String, pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<p>Adds a control to the form panel.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="clear-data.html">clearData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">clearData</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>Sets the values of all controls to null.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get.html">get</a></p>
+</td>
+<td>
+<code><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$get(kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+<p>Returns a value of the control of given key.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-control.html">getControl</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$getControl(kotlin.String)/key">key</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="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></code>
+<p>Returns a control of given key.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-data.html">getData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-data-json.html">getDataJson</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns current data model as JSON.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-sn-class.html">getSnClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnClass</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-bool-pair.html"><span class="identifier">StringBoolPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of CSS class names for current widget in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remove.html">remove</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$remove(kotlin.String)/key">key</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="./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>Removes a control from the form panel.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remove-all.html">removeAll</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeAll</span><span class="symbol">(</span><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>Removes all children from the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="render.html">render</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">render</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">VNode</span></code>
+<p>Renders current component as a Snabbdom vnode.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="set-data.html">setData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$setData(pl.treksoft.kvision.form.FormPanel.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><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 values of all the controls from the model.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="validate.html">validate</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">validate</span><span class="symbol">(</span><span class="symbol">)</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>Invokes validator function and validates the form.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/add.html">add</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.panel.SimplePanel$add(pl.treksoft.kvision.core.Component)/child">child</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Adds given component to the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/add-all.html">addAll</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">addAll</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.panel.SimplePanel$addAll(kotlin.collections.List((pl.treksoft.kvision.core.Component)))/children">children</span><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="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Adds a list of components to the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/add-internal.html">addInternal</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.panel.SimplePanel$addInternal(pl.treksoft.kvision.core.Component)/child">child</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Protected and final method to add given component to the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/children-v-nodes.html">childrenVNodes</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">childrenVNodes</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html"><span class="identifier">Array</span></a><span class="symbol">&lt;</span><span class="identifier">VNode</span><span class="symbol">&gt;</span></code>
+<p>Returns the array of the children Snabbdom vnodes.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/get-children.html">getChildren</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getChildren</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/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span></code>
+<p>Returns a list of children of the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/remove.html">remove</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.panel.SimplePanel$remove(pl.treksoft.kvision.core.Component)/child">child</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Removes given component from the current container.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Companion Object Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<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>
+<p>DSL builder extension function.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/remove-all.html b/api/pl.treksoft.kvision.form/-form-panel/remove-all.html
new file mode 100644
index 00000000..31ab388f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/remove-all.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.removeAll - 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="./remove-all.html">removeAll</a><br/>
+<br/>
+<h1>removeAll</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$removeAll()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeAll</span><span class="symbol">(</span><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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/remove-all.html">SimplePanel.removeAll</a></p>
+<p>Removes all children from the current container.</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/remove.html b/api/pl.treksoft.kvision.form/-form-panel/remove.html
new file mode 100644
index 00000000..0e9d4afd
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/remove.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.remove - 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="./remove.html">remove</a><br/>
+<br/>
+<h1>remove</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$remove(kotlin.String)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$remove(kotlin.String)/key">key</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="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>Removes a control from the form panel.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+current form panel</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/render.html b/api/pl.treksoft.kvision.form/-form-panel/render.html
new file mode 100644
index 00000000..625a9dfb
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/render.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.render - 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="./render.html">render</a><br/>
+<br/>
+<h1>render</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$render()"></a>
+<code><span class="keyword">protected</span> <span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">render</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">VNode</span></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/render.html">SimplePanel.render</a></p>
+<p>Renders current component as a Snabbdom vnode.</p>
+<p><strong>Return</strong><br/>
+Snabbdom vnode</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/set-data.html b/api/pl.treksoft.kvision.form/-form-panel/set-data.html
new file mode 100644
index 00000000..347f7cf1
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/set-data.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.setData - 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="./set-data.html">setData</a><br/>
+<br/>
+<h1>setData</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$setData(pl.treksoft.kvision.form.FormPanel.K)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$setData(pl.treksoft.kvision.form.FormPanel.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><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 values of all the controls from the model.</p>
+<h3>Parameters</h3>
+<p><a name="model"></a>
+<code>model</code> - data model</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/validate.html b/api/pl.treksoft.kvision.form/-form-panel/validate.html
new file mode 100644
index 00000000..e1e1be05
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/validate.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.validate - 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="./validate.html">validate</a><br/>
+<br/>
+<h1>validate</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$validate()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">validate</span><span class="symbol">(</span><span class="symbol">)</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>Invokes validator function and validates the form.</p>
+<p><strong>Return</strong><br/>
+validation result</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/validator-message.html b/api/pl.treksoft.kvision.form/-form-panel/validator-message.html
new file mode 100644
index 00000000..09f629f9
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/validator-message.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.validatorMessage - 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="./validator-message.html">validatorMessage</a><br/>
+<br/>
+<h1>validatorMessage</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$validatorMessage"></a>
+<code><span class="keyword">var </span><span class="identifier">validatorMessage</span><span class="symbol">: </span><span class="symbol">(</span><a href="../-form/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><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></code>
+<p>Function returning validation message.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/validator.html b/api/pl.treksoft.kvision.form/-form-panel/validator.html
new file mode 100644
index 00000000..88081e7c
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/validator.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.validator - 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="./validator.html">validator</a><br/>
+<br/>
+<h1>validator</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$validator"></a>
+<code><span class="keyword">var </span><span class="identifier">validator</span><span class="symbol">: </span><span class="symbol">(</span><a href="../-form/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><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></code>
+<p>Validation function.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-type/-h-o-r-i-z-o-n-t-a-l.html b/api/pl.treksoft.kvision.form/-form-type/-h-o-r-i-z-o-n-t-a-l.html
new file mode 100644
index 00000000..ed4d9c7e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-type/-h-o-r-i-z-o-n-t-a-l.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormType.HORIZONTAL - 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">FormType</a>&nbsp;/&nbsp;<a href="./-h-o-r-i-z-o-n-t-a-l.html">HORIZONTAL</a><br/>
+<br/>
+<h1>HORIZONTAL</h1>
+<a name="pl.treksoft.kvision.form.FormType.HORIZONTAL"></a>
+<code><span class="identifier">HORIZONTAL</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-type/-i-n-l-i-n-e.html b/api/pl.treksoft.kvision.form/-form-type/-i-n-l-i-n-e.html
new file mode 100644
index 00000000..095e5c1a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-type/-i-n-l-i-n-e.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormType.INLINE - 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">FormType</a>&nbsp;/&nbsp;<a href="./-i-n-l-i-n-e.html">INLINE</a><br/>
+<br/>
+<h1>INLINE</h1>
+<a name="pl.treksoft.kvision.form.FormType.INLINE"></a>
+<code><span class="identifier">INLINE</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-type/index.html b/api/pl.treksoft.kvision.form/-form-type/index.html
new file mode 100644
index 00000000..1152d730
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-type/index.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormType - 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">FormType</a><br/>
+<br/>
+<h1>FormType</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormType</span></code>
+<p>Bootstrap form layout options.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-i-n-l-i-n-e.html">INLINE</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-h-o-r-i-z-o-n-t-a-l.html">HORIZONTAL</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/-init-.html b/api/pl.treksoft.kvision.form/-form/-init-.html
new file mode 100644
index 00000000..b703eeca
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/-init-.html
@@ -0,0 +1,24 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.<init> - 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">Form</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.Form$&lt;init&gt;(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.K)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.Form.K)))"></a>
+<code><span class="identifier">Form</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$<init>(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.K)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.Form.K)))/panel">panel</span><span class="symbol">:</span>&nbsp;<a href="../-form-panel/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><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$<init>(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.K)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.Form.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>
+<p>Creates a form with a given modelFactory function</p>
+<h3>Parameters</h3>
+<p><a name="K"></a>
+<code>K</code> - model class type</p>
+<p><a name="panel"></a>
+<code>panel</code> - optional instance of <a href="../-form-panel/index.html">FormPanel</a></p>
+<p><a name="modelFactory"></a>
+<code>modelFactory</code> - function transforming a Map&lt;String, Any?&gt; to a data model of class K</p>
+<p><strong>Constructor</strong><br/>
+Creates a form with a given modelFactory function</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/add.html b/api/pl.treksoft.kvision.form/-form/add.html
new file mode 100644
index 00000000..c17affd8
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/add.html
@@ -0,0 +1,28 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.add - 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">Form</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
+<br/>
+<h1>add</h1>
+<a name="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</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.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<p>Adds a 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 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/clear-data.html b/api/pl.treksoft.kvision.form/-form/clear-data.html
new file mode 100644
index 00000000..cc02df05
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/clear-data.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.clearData - 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">Form</a>&nbsp;/&nbsp;<a href="./clear-data.html">clearData</a><br/>
+<br/>
+<h1>clearData</h1>
+<a name="pl.treksoft.kvision.form.Form$clearData()"></a>
+<code><span class="keyword">fun </span><span class="identifier">clearData</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>Sets the values of all controls to null.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/get-control.html b/api/pl.treksoft.kvision.form/-form/get-control.html
new file mode 100644
index 00000000..66a7180a
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/get-control.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.getControl - 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">Form</a>&nbsp;/&nbsp;<a href="./get-control.html">getControl</a><br/>
+<br/>
+<h1>getControl</h1>
+<a name="pl.treksoft.kvision.form.Form$getControl(kotlin.String)"></a>
+<code><span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$getControl(kotlin.String)/key">key</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="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></code>
+<p>Returns a control of given key.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+selected control</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/get-data-json.html b/api/pl.treksoft.kvision.form/-form/get-data-json.html
new file mode 100644
index 00000000..4c327ae8
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/get-data-json.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.getDataJson - 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">Form</a>&nbsp;/&nbsp;<a href="./get-data-json.html">getDataJson</a><br/>
+<br/>
+<h1>getDataJson</h1>
+<a name="pl.treksoft.kvision.form.Form$getDataJson()"></a>
+<code><span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns current data model as JSON.</p>
+<p><strong>Return</strong><br/>
+data model as JSON</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/get-data.html b/api/pl.treksoft.kvision.form/-form/get-data.html
new file mode 100644
index 00000000..bc3e0f12
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/get-data.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.getData - 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">Form</a>&nbsp;/&nbsp;<a href="./get-data.html">getData</a><br/>
+<br/>
+<h1>getData</h1>
+<a name="pl.treksoft.kvision.form.Form$getData()"></a>
+<code><span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model.</p>
+<p><strong>Return</strong><br/>
+data model</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/get.html b/api/pl.treksoft.kvision.form/-form/get.html
new file mode 100644
index 00000000..0a7b70fb
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/get.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.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">Form</a>&nbsp;/&nbsp;<a href="./get.html">get</a><br/>
+<br/>
+<h1>get</h1>
+<a name="pl.treksoft.kvision.form.Form$get(kotlin.String)"></a>
+<code><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$get(kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+<p>Returns a value of the control of given key.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+value of the control</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/index.html b/api/pl.treksoft.kvision.form/-form/index.html
new file mode 100644
index 00000000..678f3d2b
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/index.html
@@ -0,0 +1,123 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form - 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">Form</a><br/>
+<br/>
+<h1>Form</h1>
+<code><span class="keyword">class </span><span class="identifier">Form</span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span></code>
+<p>The form definition class. Can be used directly or indirectly inside a <a href="../-form-panel/index.html">FormPanel</a>.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Form</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$<init>(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.K)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.Form.K)))/panel">panel</span><span class="symbol">:</span>&nbsp;<a href="../-form-panel/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><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$<init>(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.K)), kotlin.Function1((kotlin.collections.Map((kotlin.String, kotlin.Any)), pl.treksoft.kvision.form.Form.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>
+<p>Creates a form with a given modelFactory function</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="add.html">add</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</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.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.String, pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<p>Adds a control to the form.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="clear-data.html">clearData</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">clearData</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>Sets the values of all controls to null.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get.html">get</a></p>
+</td>
+<td>
+<code><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$get(kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+<p>Returns a value of the control of given key.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-control.html">getControl</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$getControl(kotlin.String)/key">key</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="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></code>
+<p>Returns a control of given key.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-data.html">getData</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-data-json.html">getDataJson</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns current data model as JSON.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remove.html">remove</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$remove(kotlin.String)/key">key</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="./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>Removes a control from the form.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remove-all.html">removeAll</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">removeAll</span><span class="symbol">(</span><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>Removes all controls from the form.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="set-data.html">setData</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$setData(pl.treksoft.kvision.form.Form.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><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 values of all the controls from the model.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="validate.html">validate</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">validate</span><span class="symbol">(</span><span class="symbol">)</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>Invokes validator function and validates the form.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/remove-all.html b/api/pl.treksoft.kvision.form/-form/remove-all.html
new file mode 100644
index 00000000..1b454ea5
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/remove-all.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.removeAll - 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">Form</a>&nbsp;/&nbsp;<a href="./remove-all.html">removeAll</a><br/>
+<br/>
+<h1>removeAll</h1>
+<a name="pl.treksoft.kvision.form.Form$removeAll()"></a>
+<code><span class="keyword">fun </span><span class="identifier">removeAll</span><span class="symbol">(</span><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>Removes all controls from the form.</p>
+<p><strong>Return</strong><br/>
+current form</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/remove.html b/api/pl.treksoft.kvision.form/-form/remove.html
new file mode 100644
index 00000000..4a410154
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/remove.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.remove - 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">Form</a>&nbsp;/&nbsp;<a href="./remove.html">remove</a><br/>
+<br/>
+<h1>remove</h1>
+<a name="pl.treksoft.kvision.form.Form$remove(kotlin.String)"></a>
+<code><span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$remove(kotlin.String)/key">key</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="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>Removes a control from the form.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><strong>Return</strong><br/>
+current form</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/set-data.html b/api/pl.treksoft.kvision.form/-form/set-data.html
new file mode 100644
index 00000000..c4c01463
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/set-data.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.setData - 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">Form</a>&nbsp;/&nbsp;<a href="./set-data.html">setData</a><br/>
+<br/>
+<h1>setData</h1>
+<a name="pl.treksoft.kvision.form.Form$setData(pl.treksoft.kvision.form.Form.K)"></a>
+<code><span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$setData(pl.treksoft.kvision.form.Form.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a><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 values of all the controls from the model.</p>
+<h3>Parameters</h3>
+<p><a name="model"></a>
+<code>model</code> - data model</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/validate.html b/api/pl.treksoft.kvision.form/-form/validate.html
new file mode 100644
index 00000000..7bfbbd87
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/validate.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.validate - 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">Form</a>&nbsp;/&nbsp;<a href="./validate.html">validate</a><br/>
+<br/>
+<h1>validate</h1>
+<a name="pl.treksoft.kvision.form.Form$validate()"></a>
+<code><span class="keyword">fun </span><span class="identifier">validate</span><span class="symbol">(</span><span class="symbol">)</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>Invokes validator function and validates the form.</p>
+<p><strong>Return</strong><br/>
+validation result</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-help-block/-init-.html b/api/pl.treksoft.kvision.form/-help-block/-init-.html
new file mode 100644
index 00000000..47e893e4
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-help-block/-init-.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HelpBlock.<init> - 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">HelpBlock</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<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>
+<h3>Parameters</h3>
+<p><a name="text"></a>
+<code>text</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>
+<p><strong>Constructor</strong><br/>
+</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-help-block/index.html b/api/pl.treksoft.kvision.form/-help-block/index.html
new file mode 100644
index 00000000..ba60713e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-help-block/index.html
@@ -0,0 +1,90 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HelpBlock - 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">HelpBlock</a><br/>
+<br/>
+<h1>HelpBlock</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">HelpBlock</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.html/-tag/index.html"><span class="identifier">Tag</span></a></code>
+<p>Helper class for Bootstrap help block element.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<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>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/align.html">align</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">align</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-align/index.html"><span class="identifier">Align</span></a><span class="symbol">?</span></code>
+<p>Text align.</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>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/text.html">text</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>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/type.html">type</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">type</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-t-a-g/index.html"><span class="identifier">TAG</span></a></code>
+<p>Tag type.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/get-sn-class.html">getSnClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnClass</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-bool-pair.html"><span class="identifier">StringBoolPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of CSS class names for current widget in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.html/-tag/render.html">render</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">render</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">VNode</span></code>
+<p>Renders current component as a Snabbdom vnode.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-input-size/-l-a-r-g-e.html b/api/pl.treksoft.kvision.form/-input-size/-l-a-r-g-e.html
new file mode 100644
index 00000000..aeb33884
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-input-size/-l-a-r-g-e.html
@@ -0,0 +1,26 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>InputSize.LARGE - 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">InputSize</a>&nbsp;/&nbsp;<a href="./-l-a-r-g-e.html">LARGE</a><br/>
+<br/>
+<h1>LARGE</h1>
+<a name="pl.treksoft.kvision.form.InputSize.LARGE"></a>
+<code><span class="identifier">LARGE</span></code>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="class-name.html">className</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">className</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-input-size/-s-m-a-l-l.html b/api/pl.treksoft.kvision.form/-input-size/-s-m-a-l-l.html
new file mode 100644
index 00000000..3590ba2f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-input-size/-s-m-a-l-l.html
@@ -0,0 +1,26 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>InputSize.SMALL - 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">InputSize</a>&nbsp;/&nbsp;<a href="./-s-m-a-l-l.html">SMALL</a><br/>
+<br/>
+<h1>SMALL</h1>
+<a name="pl.treksoft.kvision.form.InputSize.SMALL"></a>
+<code><span class="identifier">SMALL</span></code>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="class-name.html">className</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">className</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-input-size/class-name.html b/api/pl.treksoft.kvision.form/-input-size/class-name.html
new file mode 100644
index 00000000..ec38666d
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-input-size/class-name.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>InputSize.className - 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">InputSize</a>&nbsp;/&nbsp;<a href="./class-name.html">className</a><br/>
+<br/>
+<h1>className</h1>
+<a name="pl.treksoft.kvision.form.InputSize$className"></a>
+<code><span class="keyword">val </span><span class="identifier">className</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-input-size/index.html b/api/pl.treksoft.kvision.form/-input-size/index.html
new file mode 100644
index 00000000..94c3bc02
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-input-size/index.html
@@ -0,0 +1,45 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>InputSize - 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">InputSize</a><br/>
+<br/>
+<h1>InputSize</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">InputSize</span></code>
+<p>Input controls sizes.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-l-a-r-g-e.html">LARGE</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-s-m-a-l-l.html">SMALL</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="class-name.html">className</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">className</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-number-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-number-form-control/get-value-as-string.html
new file mode 100644
index 00000000..e6dd3e5f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-number-form-control/get-value-as-string.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>NumberFormControl.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">NumberFormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.NumberFormControl$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/-number-form-control/get-value.html b/api/pl.treksoft.kvision.form/-number-form-control/get-value.html
new file mode 100644
index 00000000..183e7c75
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-number-form-control/get-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>NumberFormControl.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">NumberFormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.NumberFormControl$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/-number/index.html"><span class="identifier">Number</span></a><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/-number-form-control/index.html b/api/pl.treksoft.kvision.form/-number-form-control/index.html
new file mode 100644
index 00000000..cf47b0f5
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-number-form-control/index.html
@@ -0,0 +1,133 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>NumberFormControl - 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">NumberFormControl</a><br/>
+<br/>
+<h1>NumberFormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">NumberFormControl</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 numeric 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/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span></code>
+<p>Numeric 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">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="../-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="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>The actual input component.</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>
+</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/-number/index.html"><span class="identifier">Number</span></a><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.NumberFormControl$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>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.spinner/-spinner/index.html">Spinner</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Spinner</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">NumberFormControl</span></a></code>
+<p>The form field component for spinner control.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-number-form-control/set-value.html b/api/pl.treksoft.kvision.form/-number-form-control/set-value.html
new file mode 100644
index 00000000..e1be9a52
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-number-form-control/set-value.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>NumberFormControl.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">NumberFormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.NumberFormControl$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.NumberFormControl$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/-number-form-control/value.html b/api/pl.treksoft.kvision.form/-number-form-control/value.html
new file mode 100644
index 00000000..2ce85ede
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-number-form-control/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>NumberFormControl.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">NumberFormControl</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.NumberFormControl$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/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span></code>
+<p>Numeric value.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-string-form-control/get-value-as-string.html b/api/pl.treksoft.kvision.form/-string-form-control/get-value-as-string.html
new file mode 100644
index 00000000..65693283
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-string-form-control/get-value-as-string.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StringFormControl.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">StringFormControl</a>&nbsp;/&nbsp;<a href="./get-value-as-string.html">getValueAsString</a><br/>
+<br/>
+<h1>getValueAsString</h1>
+<a name="pl.treksoft.kvision.form.StringFormControl$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/-string-form-control/get-value.html b/api/pl.treksoft.kvision.form/-string-form-control/get-value.html
new file mode 100644
index 00000000..edfa3c58
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-string-form-control/get-value.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StringFormControl.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">StringFormControl</a>&nbsp;/&nbsp;<a href="./get-value.html">getValue</a><br/>
+<br/>
+<h1>getValue</h1>
+<a name="pl.treksoft.kvision.form.StringFormControl$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/-string/index.html"><span class="identifier">String</span></a><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/-string-form-control/index.html b/api/pl.treksoft.kvision.form/-string-form-control/index.html
new file mode 100644
index 00000000..0df074f2
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-string-form-control/index.html
@@ -0,0 +1,151 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StringFormControl - 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">StringFormControl</a><br/>
+<br/>
+<h1>StringFormControl</h1>
+<code><span class="keyword">interface </span><span class="identifier">StringFormControl</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 text 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/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Text 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">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="../-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="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>The actual input component.</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>
+</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/-string/index.html"><span class="identifier">String</span></a><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.StringFormControl$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>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.text/-abstract-text/index.html">AbstractText</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">class </span><span class="identifier">AbstractText</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">StringFormControl</span></a></code>
+<p>Base class for form field text components.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.check/-radio-group/index.html">RadioGroup</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">RadioGroup</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">StringFormControl</span></a></code>
+<p>The form field component rendered as a group of HTML <em>input type="radio"</em> elements with the same name attribute.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.form.select/-select/index.html">Select</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Select</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">StringFormControl</span></a></code>
+<p>The form field component for Select control.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-string-form-control/set-value.html b/api/pl.treksoft.kvision.form/-string-form-control/set-value.html
new file mode 100644
index 00000000..7188abdc
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-string-form-control/set-value.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StringFormControl.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">StringFormControl</a>&nbsp;/&nbsp;<a href="./set-value.html">setValue</a><br/>
+<br/>
+<h1>setValue</h1>
+<a name="pl.treksoft.kvision.form.StringFormControl$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.StringFormControl$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/-string-form-control/value.html b/api/pl.treksoft.kvision.form/-string-form-control/value.html
new file mode 100644
index 00000000..d01cb792
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-string-form-control/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StringFormControl.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">StringFormControl</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.StringFormControl$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/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Text value.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/index.html b/api/pl.treksoft.kvision.form/index.html
new file mode 100644
index 00000000..e8287197
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/index.html
@@ -0,0 +1,130 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.form - 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><br/>
+<br/>
+<h2>Package pl.treksoft.kvision.form</h2>
+<p>Convenient forms implementation, with support for many different input components and easy to define
+validation.</p>
+<h3>Types</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-bool-form-control/index.html">BoolFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">BoolFormControl</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 boolean value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-date-form-control/index.html">DateFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">DateFormControl</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 date value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-field-label/index.html">FieldLabel</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">FieldLabel</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.html/-tag/index.html"><span class="identifier">Tag</span></a></code>
+<p>Helper class for HTML label element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-form/index.html">Form</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">Form</span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span></code>
+<p>The form definition class. Can be used directly or indirectly inside a <a href="-form-panel/index.html">FormPanel</a>.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-form-control/index.html">FormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">FormControl</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a></code>
+<p>Base interface of a form control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-form-panel/index.html">FormPanel</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">FormPanel</span><span class="symbol">&lt;</span><span class="identifier">K</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Bootstrap form component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-form-type/index.html">FormType</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">FormType</span></code>
+<p>Bootstrap form layout options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-help-block/index.html">HelpBlock</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">HelpBlock</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.html/-tag/index.html"><span class="identifier">Tag</span></a></code>
+<p>Helper class for Bootstrap help block element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-input-size/index.html">InputSize</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">InputSize</span></code>
+<p>Input controls sizes.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-number-form-control/index.html">NumberFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">NumberFormControl</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 numeric value.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-string-form-control/index.html">StringFormControl</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">StringFormControl</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 text value.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extensions for External Classes</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="kotlin.collections.-map/index.html">kotlin.collections.Map</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/as-json.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/as-json.html
new file mode 100644
index 00000000..79014102
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/as-json.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>asJson - 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">kotlin.collections.Map</a>&nbsp;/&nbsp;<a href="./as-json.html">asJson</a><br/>
+<br/>
+<h1>asJson</h1>
+<a name="pl.treksoft.kvision.form$asJson(kotlin.collections.Map((kotlin.String, kotlin.Any)))"></a>
+<code><span class="keyword">fun </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><span class="identifier">asJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns map values in JSON format.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/bool.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/bool.html
new file mode 100644
index 00000000..2d14417e
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/bool.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>bool - 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">kotlin.collections.Map</a>&nbsp;/&nbsp;<a href="./bool.html">bool</a><br/>
+<br/>
+<h1>bool</h1>
+<a name="pl.treksoft.kvision.form$bool(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)"></a>
+<code><span class="keyword">fun </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><span class="identifier">bool</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$bool(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Boolean.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/date.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/date.html
new file mode 100644
index 00000000..05ac67b9
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/date.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>date - 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">kotlin.collections.Map</a>&nbsp;/&nbsp;<a href="./date.html">date</a><br/>
+<br/>
+<h1>date</h1>
+<a name="pl.treksoft.kvision.form$date(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)"></a>
+<code><span class="keyword">fun </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><span class="identifier">date</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$date(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-date/index.html"><span class="identifier">Date</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Date.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/index.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/index.html
new file mode 100644
index 00000000..b50e00d3
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/index.html
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.form.kotlin.collections.Map - 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">kotlin.collections.Map</a><br/>
+<br/>
+<h3>Extensions for kotlin.collections.Map</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="as-json.html">asJson</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </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><span class="identifier">asJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></code>
+<p>Returns map values in JSON format.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="bool.html">bool</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </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><span class="identifier">bool</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$bool(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Boolean.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="date.html">date</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </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><span class="identifier">date</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$date(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-date/index.html"><span class="identifier">Date</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Date.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="number.html">number</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </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><span class="identifier">number</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$number(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Number.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="string.html">string</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </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><span class="identifier">string</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$string(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a String.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/number.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/number.html
new file mode 100644
index 00000000..6f898d7f
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/number.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>number - 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">kotlin.collections.Map</a>&nbsp;/&nbsp;<a href="./number.html">number</a><br/>
+<br/>
+<h1>number</h1>
+<a name="pl.treksoft.kvision.form$number(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)"></a>
+<code><span class="keyword">fun </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><span class="identifier">number</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$number(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a Number.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/kotlin.collections.-map/string.html b/api/pl.treksoft.kvision.form/kotlin.collections.-map/string.html
new file mode 100644
index 00000000..33bc31c6
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/kotlin.collections.-map/string.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>string - 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">kotlin.collections.Map</a>&nbsp;/&nbsp;<a href="./string.html">string</a><br/>
+<br/>
+<h1>string</h1>
+<a name="pl.treksoft.kvision.form$string(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)"></a>
+<code><span class="keyword">fun </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><span class="identifier">string</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form$string(kotlin.collections.Map((kotlin.String, kotlin.Any)), kotlin.String)/key">key</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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>Returns given value from the map as a String.</p>
+</BODY>
+</HTML>