aboutsummaryrefslogtreecommitdiff
path: root/docs/api/pl.treksoft.kvision.form.select
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2018-02-09 13:40:35 +0100
committerRobert Jaros <rjaros@finn.pl>2018-02-09 13:40:35 +0100
commitd8cd67062b8de6e8398dc6dfd00d201200c82414 (patch)
tree601082ec1eec73bc7a7d6ce8b51352e5345ffe81 /docs/api/pl.treksoft.kvision.form.select
parent955304789ea83aceacbdf4c8a9eb742f6c2518f6 (diff)
downloadkvision-d8cd67062b8de6e8398dc6dfd00d201200c82414.tar.gz
kvision-d8cd67062b8de6e8398dc6dfd00d201200c82414.tar.bz2
kvision-d8cd67062b8de6e8398dc6dfd00d201200c82414.zip
API doc and readme
Diffstat (limited to 'docs/api/pl.treksoft.kvision.form.select')
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/-init-.html43
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/before-send.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/cache.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-empty.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-error.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/data-type.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/data.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/empty-request.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/http-type.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/index.html136
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/min-length.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/preprocess-data.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/request-delay.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/restore-on-error.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-ajax-options/url.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n-p.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-s-c-r-i-p-t.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-t-e-x-t.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-x-m-l.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/index.html54
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-g-e-t.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-p-o-s-t.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/index.html33
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-a-u-t-o.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-f-i-t.html14
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html33
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/-init-.html27
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/add-all.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/add.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/after-insert.html16
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/ajax-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/autofocus.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/disabled.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/empty-option.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-attrs.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-class.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/hide-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/index.html295
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/live-search.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/max-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/multiple.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/name.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/placeholder.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/remove-all.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/remove.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/render.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/select-width-type.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/select-width.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/show-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/size.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/style.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/toggle-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-input/value.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/-init-.html27
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/disabled.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/get-sn-attrs.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/index.html160
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/label.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/max-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-opt-group/render.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/-init-.html31
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/disabled.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/divider.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/get-sn-attrs.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/icon.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/index.html346
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/label.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/render.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/subtext.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select-option/value.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/-init-.html29
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/add-all.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/add.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/ajax-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/autofocus.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/disabled.html22
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/empty-option.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/flabel.html16
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/get-children.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/get-sn-class.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/hide-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/index.html378
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/input.html16
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/label.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/live-search.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/max-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/multiple.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/name.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/placeholder.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/remove-all.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/remove-event-listeners.html18
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/remove.html21
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/rich.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/select-width-type.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/select-width.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/set-event-listener.html54
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/show-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/size.html22
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/style.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/toggle-options.html15
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/validation-info.html16
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/-select/value.html22
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/index.html104
-rw-r--r--docs/api/pl.treksoft.kvision.form.select/to-js.html20
107 files changed, 3210 insertions, 0 deletions
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/-init-.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/-init-.html
new file mode 100644
index 00000000..e19ac29f
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/-init-.html
@@ -0,0 +1,43 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.<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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$&lt;init&gt;(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)"></a>
+<code><span class="identifier">AjaxOptions</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/url">url</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.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/preprocessData">preprocessData</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="keyword">dynamic</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/beforeSend">beforeSend</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/data">data</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/httpType">httpType</span><span class="symbol">:</span>&nbsp;<a href="../-h-t-t-p-t-y-p-e/index.html"><span class="identifier">HTTPTYPE</span></a>&nbsp;<span class="symbol">=</span>&nbsp;HTTPTYPE.GET<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/dataType">dataType</span><span class="symbol">:</span>&nbsp;<a href="../-d-a-t-a-t-y-p-e/index.html"><span class="identifier">DATATYPE</span></a>&nbsp;<span class="symbol">=</span>&nbsp;DATATYPE.JSON<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/minLength">minLength</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a>&nbsp;<span class="symbol">=</span>&nbsp;0<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/cache">cache</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/clearOnEmpty">clearOnEmpty</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/clearOnError">clearOnError</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/emptyRequest">emptyRequest</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.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/requestDelay">requestDelay</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a>&nbsp;<span class="symbol">=</span>&nbsp;AJAX_REQUEST_DELAY<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/restoreOnError">restoreOnError</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="url"></a>
+<code>url</code> - the url address</p>
+<p><a name="preprocessData"></a>
+<code>preprocessData</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionspreprocessdata">AjaxBootstrapSelect preprocessOption</a>
+option</p>
+<p><a name="beforeSend"></a>
+<code>beforeSend</code> - <a href="http://api.jquery.com/jquery.ajax/#jQuery-ajax-settings">JQuery ajax.beforeSend</a> option</p>
+<p><a name="data"></a>
+<code>data</code> - <a href="http://api.jquery.com/jquery.ajax/#jQuery-ajax-settings">JQuery ajax.data</a> option</p>
+<p><a name="httpType"></a>
+<code>httpType</code> - <a href="http://api.jquery.com/jquery.ajax/#jQuery-ajax-settings">JQuery ajax.type</a> option</p>
+<p><a name="minLength"></a>
+<code>minLength</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsminlength">AjaxBootstrapSelect minLength</a> option</p>
+<p><a name="cache"></a>
+<code>cache</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionscache">AjaxBootstrapSelect cache</a> option</p>
+<p><a name="clearOnEmpty"></a>
+<code>clearOnEmpty</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsclearonempty">AjaxBootstrapSelect clearOnEmpty</a> option</p>
+<p><a name="clearOnError"></a>
+<code>clearOnError</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsclearonerror">AjaxBootstrapSelect clearOnError</a> option</p>
+<p><a name="emptyRequest"></a>
+<code>emptyRequest</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsemptyrequest">AjaxBootstrapSelect emptyRequest</a> option</p>
+<p><a name="requestDelay"></a>
+<code>requestDelay</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsrequestdelay">AjaxBootstrapSelect requestDelay</a> option</p>
+<p><a name="restoreOnError"></a>
+<code>restoreOnError</code> - <a href="https://github.com/truckingsim/Ajax-Bootstrap-Select#optionsrestoreonerror">AjaxBootstrapSelect restoreOnError</a>
+option</p>
+<p><strong>Constructor</strong><br/>
+</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/before-send.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/before-send.html
new file mode 100644
index 00000000..3ce72788
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/before-send.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.beforeSend - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./before-send.html">beforeSend</a><br/>
+<br/>
+<h1>beforeSend</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$beforeSend"></a>
+<code><span class="keyword">val </span><span class="identifier">beforeSend</span><span class="symbol">: </span><span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/cache.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/cache.html
new file mode 100644
index 00000000..db1944c7
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/cache.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.cache - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./cache.html">cache</a><br/>
+<br/>
+<h1>cache</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$cache"></a>
+<code><span class="keyword">val </span><span class="identifier">cache</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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-empty.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-empty.html
new file mode 100644
index 00000000..5ee08617
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-empty.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.clearOnEmpty - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./clear-on-empty.html">clearOnEmpty</a><br/>
+<br/>
+<h1>clearOnEmpty</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$clearOnEmpty"></a>
+<code><span class="keyword">val </span><span class="identifier">clearOnEmpty</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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-error.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-error.html
new file mode 100644
index 00000000..81b5784a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/clear-on-error.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.clearOnError - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./clear-on-error.html">clearOnError</a><br/>
+<br/>
+<h1>clearOnError</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$clearOnError"></a>
+<code><span class="keyword">val </span><span class="identifier">clearOnError</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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data-type.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data-type.html
new file mode 100644
index 00000000..01f60431
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data-type.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.dataType - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./data-type.html">dataType</a><br/>
+<br/>
+<h1>dataType</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$dataType"></a>
+<code><span class="keyword">val </span><span class="identifier">dataType</span><span class="symbol">: </span><a href="../-d-a-t-a-t-y-p-e/index.html"><span class="identifier">DATATYPE</span></a></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data.html
new file mode 100644
index 00000000..037758fb
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/data.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.data - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./data.html">data</a><br/>
+<br/>
+<h1>data</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$data"></a>
+<code><span class="keyword">val </span><span class="identifier">data</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/empty-request.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/empty-request.html
new file mode 100644
index 00000000..2c1085c1
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/empty-request.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.emptyRequest - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./empty-request.html">emptyRequest</a><br/>
+<br/>
+<h1>emptyRequest</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$emptyRequest"></a>
+<code><span class="keyword">val </span><span class="identifier">emptyRequest</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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/http-type.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/http-type.html
new file mode 100644
index 00000000..8b5247eb
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/http-type.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.httpType - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./http-type.html">httpType</a><br/>
+<br/>
+<h1>httpType</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$httpType"></a>
+<code><span class="keyword">val </span><span class="identifier">httpType</span><span class="symbol">: </span><a href="../-h-t-t-p-t-y-p-e/index.html"><span class="identifier">HTTPTYPE</span></a></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/index.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/index.html
new file mode 100644
index 00000000..3aada582
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/index.html
@@ -0,0 +1,136 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">AjaxOptions</a><br/>
+<br/>
+<h1>AjaxOptions</h1>
+<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">AjaxOptions</span></code>
+<p>Data class for AJAX options.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">AjaxOptions</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/url">url</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.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/preprocessData">preprocessData</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="keyword">dynamic</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/beforeSend">beforeSend</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/data">data</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/httpType">httpType</span><span class="symbol">:</span>&nbsp;<a href="../-h-t-t-p-t-y-p-e/index.html"><span class="identifier">HTTPTYPE</span></a>&nbsp;<span class="symbol">=</span>&nbsp;HTTPTYPE.GET<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/dataType">dataType</span><span class="symbol">:</span>&nbsp;<a href="../-d-a-t-a-t-y-p-e/index.html"><span class="identifier">DATATYPE</span></a>&nbsp;<span class="symbol">=</span>&nbsp;DATATYPE.JSON<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/minLength">minLength</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a>&nbsp;<span class="symbol">=</span>&nbsp;0<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/cache">cache</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/clearOnEmpty">clearOnEmpty</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/clearOnError">clearOnError</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;true<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/emptyRequest">emptyRequest</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.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/requestDelay">requestDelay</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a>&nbsp;<span class="symbol">=</span>&nbsp;AJAX_REQUEST_DELAY<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.select.AjaxOptions$<init>(kotlin.String, kotlin.Function1((kotlin.Any, )), kotlin.Function1((pl.treksoft.jquery.JQueryXHR, kotlin.Any)), kotlin.Any, pl.treksoft.kvision.form.select.HTTPTYPE, pl.treksoft.kvision.form.select.DATATYPE, kotlin.Int, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, kotlin.Int, kotlin.Boolean)/restoreOnError">restoreOnError</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>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="before-send.html">beforeSend</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">beforeSend</span><span class="symbol">: </span><span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="cache.html">cache</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">cache</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></td>
+</tr>
+<tr>
+<td>
+<p><a href="clear-on-empty.html">clearOnEmpty</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">clearOnEmpty</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></td>
+</tr>
+<tr>
+<td>
+<p><a href="clear-on-error.html">clearOnError</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">clearOnError</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></td>
+</tr>
+<tr>
+<td>
+<p><a href="data.html">data</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">data</span><span class="symbol">: </span><span class="keyword">dynamic</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="data-type.html">dataType</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">dataType</span><span class="symbol">: </span><a href="../-d-a-t-a-t-y-p-e/index.html"><span class="identifier">DATATYPE</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="empty-request.html">emptyRequest</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">emptyRequest</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></td>
+</tr>
+<tr>
+<td>
+<p><a href="http-type.html">httpType</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">httpType</span><span class="symbol">: </span><a href="../-h-t-t-p-t-y-p-e/index.html"><span class="identifier">HTTPTYPE</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="min-length.html">minLength</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">minLength</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="preprocess-data.html">preprocessData</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">preprocessData</span><span class="symbol">: </span><span class="symbol">(</span><span class="keyword">dynamic</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="request-delay.html">requestDelay</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">requestDelay</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="restore-on-error.html">restoreOnError</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">restoreOnError</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></td>
+</tr>
+<tr>
+<td>
+<p><a href="url.html">url</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">url</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>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../to-js.html">toJs</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><a href="./index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">.</span><span class="identifier">toJs</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select$toJs(pl.treksoft.kvision.form.select.AjaxOptions, kotlin.Boolean)/emptyOption">emptyOption</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><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Convert AjaxOptions to JavaScript JSON object.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/min-length.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/min-length.html
new file mode 100644
index 00000000..81746792
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/min-length.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.minLength - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./min-length.html">minLength</a><br/>
+<br/>
+<h1>minLength</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$minLength"></a>
+<code><span class="keyword">val </span><span class="identifier">minLength</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/preprocess-data.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/preprocess-data.html
new file mode 100644
index 00000000..08a0a8ee
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/preprocess-data.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.preprocessData - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./preprocess-data.html">preprocessData</a><br/>
+<br/>
+<h1>preprocessData</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$preprocessData"></a>
+<code><span class="keyword">val </span><span class="identifier">preprocessData</span><span class="symbol">: </span><span class="symbol">(</span><span class="keyword">dynamic</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="keyword">dynamic</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/request-delay.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/request-delay.html
new file mode 100644
index 00000000..d1b01119
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/request-delay.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.requestDelay - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./request-delay.html">requestDelay</a><br/>
+<br/>
+<h1>requestDelay</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$requestDelay"></a>
+<code><span class="keyword">val </span><span class="identifier">requestDelay</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/restore-on-error.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/restore-on-error.html
new file mode 100644
index 00000000..0abc1431
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/restore-on-error.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.restoreOnError - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./restore-on-error.html">restoreOnError</a><br/>
+<br/>
+<h1>restoreOnError</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$restoreOnError"></a>
+<code><span class="keyword">val </span><span class="identifier">restoreOnError</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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-ajax-options/url.html b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/url.html
new file mode 100644
index 00000000..787210a8
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-ajax-options/url.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>AjaxOptions.url - 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.select</a>&nbsp;/&nbsp;<a href="index.html">AjaxOptions</a>&nbsp;/&nbsp;<a href="./url.html">url</a><br/>
+<br/>
+<h1>url</h1>
+<a name="pl.treksoft.kvision.form.select.AjaxOptions$url"></a>
+<code><span class="keyword">val </span><span class="identifier">url</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/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n-p.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n-p.html
new file mode 100644
index 00000000..95a5253a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n-p.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE.JSONP - 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.select</a>&nbsp;/&nbsp;<a href="index.html">DATATYPE</a>&nbsp;/&nbsp;<a href="./-j-s-o-n-p.html">JSONP</a><br/>
+<br/>
+<h1>JSONP</h1>
+<a name="pl.treksoft.kvision.form.select.DATATYPE.JSONP"></a>
+<code><span class="identifier">JSONP</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n.html
new file mode 100644
index 00000000..e8e22109
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-j-s-o-n.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE.JSON - 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.select</a>&nbsp;/&nbsp;<a href="index.html">DATATYPE</a>&nbsp;/&nbsp;<a href="./-j-s-o-n.html">JSON</a><br/>
+<br/>
+<h1>JSON</h1>
+<a name="pl.treksoft.kvision.form.select.DATATYPE.JSON"></a>
+<code><span class="identifier">JSON</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-s-c-r-i-p-t.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-s-c-r-i-p-t.html
new file mode 100644
index 00000000..fc0537af
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-s-c-r-i-p-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE.SCRIPT - 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.select</a>&nbsp;/&nbsp;<a href="index.html">DATATYPE</a>&nbsp;/&nbsp;<a href="./-s-c-r-i-p-t.html">SCRIPT</a><br/>
+<br/>
+<h1>SCRIPT</h1>
+<a name="pl.treksoft.kvision.form.select.DATATYPE.SCRIPT"></a>
+<code><span class="identifier">SCRIPT</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-t-e-x-t.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-t-e-x-t.html
new file mode 100644
index 00000000..8b2349be
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-t-e-x-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE.TEXT - 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.select</a>&nbsp;/&nbsp;<a href="index.html">DATATYPE</a>&nbsp;/&nbsp;<a href="./-t-e-x-t.html">TEXT</a><br/>
+<br/>
+<h1>TEXT</h1>
+<a name="pl.treksoft.kvision.form.select.DATATYPE.TEXT"></a>
+<code><span class="identifier">TEXT</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-x-m-l.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-x-m-l.html
new file mode 100644
index 00000000..11836f66
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/-x-m-l.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE.XML - 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.select</a>&nbsp;/&nbsp;<a href="index.html">DATATYPE</a>&nbsp;/&nbsp;<a href="./-x-m-l.html">XML</a><br/>
+<br/>
+<h1>XML</h1>
+<a name="pl.treksoft.kvision.form.select.DATATYPE.XML"></a>
+<code><span class="identifier">XML</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/index.html b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/index.html
new file mode 100644
index 00000000..1ac80e18
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-d-a-t-a-t-y-p-e/index.html
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DATATYPE - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">DATATYPE</a><br/>
+<br/>
+<h1>DATATYPE</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">DATATYPE</span></code>
+<p>Data type for the AJAX call.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-j-s-o-n.html">JSON</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-j-s-o-n-p.html">JSONP</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-x-m-l.html">XML</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-t-e-x-t.html">TEXT</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-s-c-r-i-p-t.html">SCRIPT</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-g-e-t.html b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-g-e-t.html
new file mode 100644
index 00000000..6ca1fa0d
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-g-e-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HTTPTYPE.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.select</a>&nbsp;/&nbsp;<a href="index.html">HTTPTYPE</a>&nbsp;/&nbsp;<a href="./-g-e-t.html">GET</a><br/>
+<br/>
+<h1>GET</h1>
+<a name="pl.treksoft.kvision.form.select.HTTPTYPE.GET"></a>
+<code><span class="identifier">GET</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-p-o-s-t.html b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-p-o-s-t.html
new file mode 100644
index 00000000..fc45a9da
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/-p-o-s-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HTTPTYPE.POST - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form.select</a>&nbsp;/&nbsp;<a href="index.html">HTTPTYPE</a>&nbsp;/&nbsp;<a href="./-p-o-s-t.html">POST</a><br/>
+<br/>
+<h1>POST</h1>
+<a name="pl.treksoft.kvision.form.select.HTTPTYPE.POST"></a>
+<code><span class="identifier">POST</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/index.html b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/index.html
new file mode 100644
index 00000000..b138a353
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-h-t-t-p-t-y-p-e/index.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HTTPTYPE - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">HTTPTYPE</a><br/>
+<br/>
+<h1>HTTPTYPE</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">HTTPTYPE</span></code>
+<p>HTTP protocol type for the AJAX call.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-g-e-t.html">GET</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-p-o-s-t.html">POST</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-a-u-t-o.html b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-a-u-t-o.html
new file mode 100644
index 00000000..74748eca
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-a-u-t-o.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SELECTWIDTHTYPE.AUTO - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SELECTWIDTHTYPE</a>&nbsp;/&nbsp;<a href="./-a-u-t-o.html">AUTO</a><br/>
+<br/>
+<h1>AUTO</h1>
+<a name="pl.treksoft.kvision.form.select.SELECTWIDTHTYPE.AUTO"></a>
+<code><span class="identifier">AUTO</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-f-i-t.html b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-f-i-t.html
new file mode 100644
index 00000000..fd81fde8
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/-f-i-t.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SELECTWIDTHTYPE.FIT - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SELECTWIDTHTYPE</a>&nbsp;/&nbsp;<a href="./-f-i-t.html">FIT</a><br/>
+<br/>
+<h1>FIT</h1>
+<a name="pl.treksoft.kvision.form.select.SELECTWIDTHTYPE.FIT"></a>
+<code><span class="identifier">FIT</span></code>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html
new file mode 100644
index 00000000..b7342852
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SELECTWIDTHTYPE - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">SELECTWIDTHTYPE</a><br/>
+<br/>
+<h1>SELECTWIDTHTYPE</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">SELECTWIDTHTYPE</span></code>
+<p>Select width types. See <a href="http://silviomoreto.github.io/bootstrap-select/examples/#width">Bootstrap Select width</a>.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-a-u-t-o.html">AUTO</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-f-i-t.html">FIT</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/-init-.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/-init-.html
new file mode 100644
index 00000000..1ea1cc60
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/-init-.html
@@ -0,0 +1,27 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.<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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$&lt;init&gt;(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))"></a>
+<code><span class="identifier">SelectInput</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/value">value</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/multiple">multiple</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/ajaxOptions">ajaxOptions</span><span class="symbol">:</span>&nbsp;<a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, 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()<span class="symbol">)</span></code>
+<h3>Parameters</h3>
+<p><a name="options"></a>
+<code>options</code> - an optional list of options (label to value pairs) for the select control</p>
+<p><a name="value"></a>
+<code>value</code> - selected value</p>
+<p><a name="multiple"></a>
+<code>multiple</code> - allows multiple value selection (multiple values are comma delimited)</p>
+<p><a name="ajaxOptions"></a>
+<code>ajaxOptions</code> - additional options for remote (AJAX) data source</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/docs/api/pl.treksoft.kvision.form.select/-select-input/add-all.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/add-all.html
new file mode 100644
index 00000000..5becd914
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/add-all.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.addAll - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./add-all.html">addAll</a><br/>
+<br/>
+<h1>addAll</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$addAll(kotlin.collections.List((pl.treksoft.kvision.core.Component)))"></a>
+<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.form.select.SelectInput$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/add-all.html">SimplePanel.addAll</a></p>
+<p>Adds a list of components to the current container.</p>
+<h3>Parameters</h3>
+<p><a name="children"></a>
+<code>children</code> - list of child components</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/add.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/add.html
new file mode 100644
index 00000000..39171a2a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/add.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
+<br/>
+<h1>add</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$add(pl.treksoft.kvision.core.Component)"></a>
+<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.form.select.SelectInput$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/add.html">SimplePanel.add</a></p>
+<p>Adds given component to the current container.</p>
+<h3>Parameters</h3>
+<p><a name="child"></a>
+<code>child</code> - child component</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/after-insert.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/after-insert.html
new file mode 100644
index 00000000..aab8ccb0
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/after-insert.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.afterInsert - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./after-insert.html">afterInsert</a><br/>
+<br/>
+<h1>afterInsert</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$afterInsert(com.github.snabbdom.VNode)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterInsert</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectInput$afterInsert(com.github.snabbdom.VNode)/node">node</span><span class="symbol">:</span>&nbsp;<span class="identifier">VNode</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="../../pl.treksoft.kvision.core/-widget/after-insert.html">Widget.afterInsert</a></p>
+<p>Method called after inserting Snabbdom vnode into the DOM.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/ajax-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/ajax-options.html
new file mode 100644
index 00000000..b6d2e986
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/ajax-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.ajaxOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./ajax-options.html">ajaxOptions</a><br/>
+<br/>
+<h1>ajaxOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$ajaxOptions"></a>
+<code><span class="keyword">var </span><span class="identifier">ajaxOptions</span><span class="symbol">: </span><a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">?</span></code>
+<p>Additional options for remote (AJAX) data source.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/autofocus.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/autofocus.html
new file mode 100644
index 00000000..2601d67f
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/autofocus.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.autofocus - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./autofocus.html">autofocus</a><br/>
+<br/>
+<h1>autofocus</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$autofocus"></a>
+<code><span class="keyword">var </span><span class="identifier">autofocus</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the select is automatically focused.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/disabled.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/disabled.html
new file mode 100644
index 00000000..286f35da
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/disabled.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<br/>
+<h1>disabled</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$disabled"></a>
+<code><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/docs/api/pl.treksoft.kvision.form.select/-select-input/empty-option.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/empty-option.html
new file mode 100644
index 00000000..0e2457a8
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/empty-option.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.emptyOption - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./empty-option.html">emptyOption</a><br/>
+<br/>
+<h1>emptyOption</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$emptyOption"></a>
+<code><span class="keyword">var </span><span class="identifier">emptyOption</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 an empty option is automatically generated.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-attrs.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-attrs.html
new file mode 100644
index 00000000..371b3bd7
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-attrs.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./get-sn-attrs.html">getSnAttrs</a><br/>
+<br/>
+<h1>getSnAttrs</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$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/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-class.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-class.html
new file mode 100644
index 00000000..28b40573
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/get-sn-class.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./get-sn-class.html">getSnClass</a><br/>
+<br/>
+<h1>getSnClass</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$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/docs/api/pl.treksoft.kvision.form.select/-select-input/hide-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/hide-options.html
new file mode 100644
index 00000000..d1b371ec
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/hide-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.hideOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./hide-options.html">hideOptions</a><br/>
+<br/>
+<h1>hideOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$hideOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">hideOptions</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>Hides dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/index.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/index.html
new file mode 100644
index 00000000..6fa9cfe5
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/index.html
@@ -0,0 +1,295 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">SelectInput</a><br/>
+<br/>
+<h1>SelectInput</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>The basic component for Select control.</p>
+<p>The select control can be populated directly from <em>options</em> parameter or manually by adding
+<a href="../-select-option/index.html">SelectOption</a> or <a href="../-select-opt-group/index.html">SelectOptGroup</a> components to the container.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">SelectInput</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/value">value</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/multiple">multiple</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.collections.Set((kotlin.String)))/ajaxOptions">ajaxOptions</span><span class="symbol">:</span>&nbsp;<a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</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.select.SelectInput$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, 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()<span class="symbol">)</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="ajax-options.html">ajaxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">ajaxOptions</span><span class="symbol">: </span><a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">?</span></code>
+<p>Additional options for remote (AJAX) data source.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="autofocus.html">autofocus</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">autofocus</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the select is automatically focused.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="disabled.html">disabled</a></p>
+</td>
+<td>
+<code><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="empty-option.html">emptyOption</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">emptyOption</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 an empty option is automatically generated.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="live-search.html">liveSearch</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">liveSearch</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 live search is available.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="max-options.html">maxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="multiple.html">multiple</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">multiple</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 multiple value selection is allowed.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML select element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="placeholder.html">placeholder</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">placeholder</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The placeholder for the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="select-width.html">selectWidth</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">selectWidth</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-css-size.html"><span class="identifier">CssSize</span></a><span class="symbol">?</span></code>
+<p>The width of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="select-width-type.html">selectWidthType</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">selectWidthType</span><span class="symbol">: </span><a href="../-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html"><span class="identifier">SELECTWIDTHTYPE</span></a><span class="symbol">?</span></code>
+<p>The width type of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="size.html">size</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-i-n-p-u-t-s-i-z-e/index.html"><span class="identifier">INPUTSIZE</span></a><span class="symbol">?</span></code>
+<p>The size of the input.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="style.html">style</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">style</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-b-u-t-t-o-n-s-t-y-l-e/index.html"><span class="identifier">BUTTONSTYLE</span></a><span class="symbol">?</span></code>
+<p>The style of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="value.html">value</a></p>
+</td>
+<td>
+<code><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>A value of the selected option.</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="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectInput$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="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.form.select.SelectInput$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="after-insert.html">afterInsert</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterInsert</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectInput$afterInsert(com.github.snabbdom.VNode)/node">node</span><span class="symbol">:</span>&nbsp;<span class="identifier">VNode</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>Method called after inserting Snabbdom vnode into the DOM.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-sn-attrs.html">getSnAttrs</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnAttrs</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-string-pair.html"><span class="identifier">StringPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of element attributes in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-sn-class.html">getSnClass</a></p>
+</td>
+<td>
+<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="hide-options.html">hideOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">hideOptions</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>Hides dropdown with options.</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.select.SelectInput$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>
+<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="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></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="show-options.html">showOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">showOptions</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>Opens dropdown with options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="toggle-options.html">toggleOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">toggleOptions</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>Toggles visibility of dropdown with options.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<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>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/live-search.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/live-search.html
new file mode 100644
index 00000000..8a4991a4
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/live-search.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.liveSearch - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./live-search.html">liveSearch</a><br/>
+<br/>
+<h1>liveSearch</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$liveSearch"></a>
+<code><span class="keyword">var </span><span class="identifier">liveSearch</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 live search is available.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/max-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/max-options.html
new file mode 100644
index 00000000..94af9393
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/max-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.maxOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./max-options.html">maxOptions</a><br/>
+<br/>
+<h1>maxOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$maxOptions"></a>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/multiple.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/multiple.html
new file mode 100644
index 00000000..c153f784
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/multiple.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.multiple - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./multiple.html">multiple</a><br/>
+<br/>
+<h1>multiple</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$multiple"></a>
+<code><span class="keyword">var </span><span class="identifier">multiple</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 multiple value selection is allowed.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/name.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/name.html
new file mode 100644
index 00000000..7fb56e4e
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/name.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.name - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./name.html">name</a><br/>
+<br/>
+<h1>name</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$name"></a>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML select element.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/placeholder.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/placeholder.html
new file mode 100644
index 00000000..ff134007
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/placeholder.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.placeholder - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./placeholder.html">placeholder</a><br/>
+<br/>
+<h1>placeholder</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$placeholder"></a>
+<code><span class="keyword">var </span><span class="identifier">placeholder</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The placeholder for the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/remove-all.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/remove-all.html
new file mode 100644
index 00000000..ea8cda8e
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/remove-all.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./remove-all.html">removeAll</a><br/>
+<br/>
+<h1>removeAll</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$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="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></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/docs/api/pl.treksoft.kvision.form.select/-select-input/remove.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/remove.html
new file mode 100644
index 00000000..0d1cd965
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/remove.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./remove.html">remove</a><br/>
+<br/>
+<h1>remove</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$remove(pl.treksoft.kvision.core.Component)"></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.select.SelectInput$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/remove.html">SimplePanel.remove</a></p>
+<p>Removes given component from the current container.</p>
+<h3>Parameters</h3>
+<p><a name="child"></a>
+<code>child</code> - child component</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/render.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/render.html
new file mode 100644
index 00000000..105094e3
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/render.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./render.html">render</a><br/>
+<br/>
+<h1>render</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$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/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width-type.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width-type.html
new file mode 100644
index 00000000..0bc69205
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width-type.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.selectWidthType - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./select-width-type.html">selectWidthType</a><br/>
+<br/>
+<h1>selectWidthType</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$selectWidthType"></a>
+<code><span class="keyword">var </span><span class="identifier">selectWidthType</span><span class="symbol">: </span><a href="../-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html"><span class="identifier">SELECTWIDTHTYPE</span></a><span class="symbol">?</span></code>
+<p>The width type of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width.html
new file mode 100644
index 00000000..b2303fc0
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/select-width.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.selectWidth - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./select-width.html">selectWidth</a><br/>
+<br/>
+<h1>selectWidth</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$selectWidth"></a>
+<code><span class="keyword">var </span><span class="identifier">selectWidth</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-css-size.html"><span class="identifier">CssSize</span></a><span class="symbol">?</span></code>
+<p>The width of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/show-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/show-options.html
new file mode 100644
index 00000000..d3f371c8
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/show-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.showOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./show-options.html">showOptions</a><br/>
+<br/>
+<h1>showOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$showOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">showOptions</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>Opens dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/size.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/size.html
new file mode 100644
index 00000000..5a085e4b
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/size.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./size.html">size</a><br/>
+<br/>
+<h1>size</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$size"></a>
+<code><span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-i-n-p-u-t-s-i-z-e/index.html"><span class="identifier">INPUTSIZE</span></a><span class="symbol">?</span></code>
+<p>The size of the input.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/style.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/style.html
new file mode 100644
index 00000000..4efe941a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/style.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.style - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./style.html">style</a><br/>
+<br/>
+<h1>style</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$style"></a>
+<code><span class="keyword">var </span><span class="identifier">style</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-b-u-t-t-o-n-s-t-y-l-e/index.html"><span class="identifier">BUTTONSTYLE</span></a><span class="symbol">?</span></code>
+<p>The style of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/toggle-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/toggle-options.html
new file mode 100644
index 00000000..725c5cc7
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/toggle-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.toggleOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./toggle-options.html">toggleOptions</a><br/>
+<br/>
+<h1>toggleOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$toggleOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">toggleOptions</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>Toggles visibility of dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-input/value.html b/docs/api/pl.treksoft.kvision.form.select/-select-input/value.html
new file mode 100644
index 00000000..891f1f9f
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-input/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectInput.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectInput</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.select.SelectInput$value"></a>
+<code><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>A value of the selected option.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/-init-.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/-init-.html
new file mode 100644
index 00000000..7545e4e5
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/-init-.html
@@ -0,0 +1,27 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.<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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$&lt;init&gt;(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))"></a>
+<code><span class="identifier">SelectOptGroup</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/label">label</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/maxOptions">maxOptions</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/disabled">disabled</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, 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()<span class="symbol">)</span></code>
+<h3>Parameters</h3>
+<p><a name="label"></a>
+<code>label</code> - the label of the group</p>
+<p><a name="options"></a>
+<code>options</code> - an optional list of options (label to value pairs) for the group</p>
+<p><a name="maxOptions"></a>
+<code>maxOptions</code> - maximal number of selected options in the group</p>
+<p><a name="disabled"></a>
+<code>disabled</code> - renders a disabled group</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/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/disabled.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/disabled.html
new file mode 100644
index 00000000..ec1396bd
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/disabled.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<br/>
+<h1>disabled</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$disabled"></a>
+<code><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 group is disabled.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/get-sn-attrs.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/get-sn-attrs.html
new file mode 100644
index 00000000..9fd36159
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/get-sn-attrs.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./get-sn-attrs.html">getSnAttrs</a><br/>
+<br/>
+<h1>getSnAttrs</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$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/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/index.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/index.html
new file mode 100644
index 00000000..f3a5bc45
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/index.html
@@ -0,0 +1,160 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">SelectOptGroup</a><br/>
+<br/>
+<h1>SelectOptGroup</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectOptGroup</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>The helper container for adding option groups to <a href="../-select/index.html">Select</a>.</p>
+<p>The option group can be populated directly from <em>options</em> parameter or manually by adding
+<a href="../-select-option/index.html">SelectOption</a> components to the container.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">SelectOptGroup</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/label">label</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/maxOptions">maxOptions</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/disabled">disabled</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.select.SelectOptGroup$<init>(kotlin.String, kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.Int, 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()<span class="symbol">)</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="disabled.html">disabled</a></p>
+</td>
+<td>
+<code><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 group is disabled.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="label.html">label</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">label</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>
+<p>A label for the group.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="max-options.html">maxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options in the group.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="options.html">options</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">options</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><span class="symbol">?</span></code>
+<p>A list of options (label to value pairs) for the group.</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>
+<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>
+</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>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.panel/-simple-panel/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="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Removes all children from the current container.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/label.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/label.html
new file mode 100644
index 00000000..491fb265
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/label.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.label - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./label.html">label</a><br/>
+<br/>
+<h1>label</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$label"></a>
+<code><span class="keyword">var </span><span class="identifier">label</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>
+<p>A label for the group.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/max-options.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/max-options.html
new file mode 100644
index 00000000..124a6e92
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/max-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.maxOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./max-options.html">maxOptions</a><br/>
+<br/>
+<h1>maxOptions</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$maxOptions"></a>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options in the group.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/options.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/options.html
new file mode 100644
index 00000000..4b9eccfe
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.options - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./options.html">options</a><br/>
+<br/>
+<h1>options</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$options"></a>
+<code><span class="keyword">var </span><span class="identifier">options</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><span class="symbol">?</span></code>
+<p>A list of options (label to value pairs) for the group.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/render.html b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/render.html
new file mode 100644
index 00000000..745b6d91
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-opt-group/render.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOptGroup.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOptGroup</a>&nbsp;/&nbsp;<a href="./render.html">render</a><br/>
+<br/>
+<h1>render</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOptGroup$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/docs/api/pl.treksoft.kvision.form.select/-select-option/-init-.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/-init-.html
new file mode 100644
index 00000000..4bbd977b
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/-init-.html
@@ -0,0 +1,31 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.<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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$&lt;init&gt;(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))"></a>
+<code><span class="identifier">SelectOption</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/value">value</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/label">label</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/subtext">subtext</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/icon">icon</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/divider">divider</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/disabled">disabled</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, 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()<span class="symbol">)</span></code>
+<h3>Parameters</h3>
+<p><a name="value"></a>
+<code>value</code> - the value of the option</p>
+<p><a name="label"></a>
+<code>label</code> - the label of the option</p>
+<p><a name="subtext"></a>
+<code>subtext</code> - the small subtext after the label of the option</p>
+<p><a name="icon"></a>
+<code>icon</code> - the icon before the label of the option</p>
+<p><a name="divider"></a>
+<code>divider</code> - renders this option as a divider</p>
+<p><a name="disabled"></a>
+<code>disabled</code> - renders a disabled option</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/docs/api/pl.treksoft.kvision.form.select/-select-option/disabled.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/disabled.html
new file mode 100644
index 00000000..0866318c
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/disabled.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<br/>
+<h1>disabled</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$disabled"></a>
+<code><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 option should be disabled.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/divider.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/divider.html
new file mode 100644
index 00000000..8cde2f8a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/divider.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.divider - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./divider.html">divider</a><br/>
+<br/>
+<h1>divider</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$divider"></a>
+<code><span class="keyword">var </span><span class="identifier">divider</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 option should be rendered as divider.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/get-sn-attrs.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/get-sn-attrs.html
new file mode 100644
index 00000000..50bea1eb
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/get-sn-attrs.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./get-sn-attrs.html">getSnAttrs</a><br/>
+<br/>
+<h1>getSnAttrs</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$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/docs/api/pl.treksoft.kvision.form.select/-select-option/icon.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/icon.html
new file mode 100644
index 00000000..beda6b21
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/icon.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.icon - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./icon.html">icon</a><br/>
+<br/>
+<h1>icon</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$icon"></a>
+<code><span class="keyword">var </span><span class="identifier">icon</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The icon before the label of the option.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/index.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/index.html
new file mode 100644
index 00000000..7fd1a7f3
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/index.html
@@ -0,0 +1,346 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">SelectOption</a><br/>
+<br/>
+<h1>SelectOption</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectOption</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>The helper component for adding options to <a href="../-select/index.html">Select</a> or <a href="../-select-opt-group/index.html">SelectOptGroup</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">SelectOption</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/value">value</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/label">label</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/subtext">subtext</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/icon">icon</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/divider">divider</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/disabled">disabled</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.select.SelectOption$<init>(kotlin.String, kotlin.String, kotlin.String, kotlin.String, kotlin.Boolean, 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()<span class="symbol">)</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="disabled.html">disabled</a></p>
+</td>
+<td>
+<code><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 option should be disabled.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="divider.html">divider</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">divider</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 option should be rendered as divider.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="icon.html">icon</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">icon</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The icon before the label of the option.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="label.html">label</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">label</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The label of the option.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="subtext.html">subtext</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">subtext</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The subtext after the label of the option.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="value.html">value</a></p>
+</td>
+<td>
+<code><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>The value of the option.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/id.html">id</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">id</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>An ID attribute of generated HTML element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/parent.html">parent</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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/-widget/role.html">role</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">role</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>A role attribute of generated HTML element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/title.html">title</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">title</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>A title attribute of generated HTML element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/visible.html">visible</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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-sn-attrs.html">getSnAttrs</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnAttrs</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-string-pair.html"><span class="identifier">StringPair</span></a><span class="symbol">&gt;</span></code>
+<p>Returns list of element attributes in the form of a List.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="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>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/add-css-class.html">addCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">addCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$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/-widget/index.html"><span class="identifier">Widget</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/-widget/add-surrounding-css-class.html">addSurroundingCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">addSurroundingCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$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/-widget/index.html"><span class="identifier">Widget</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/-widget/after-create.html">afterCreate</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterCreate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$afterCreate(com.github.snabbdom.VNode)/node">node</span><span class="symbol">:</span>&nbsp;<span class="identifier">VNode</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>Method called after creating Snabbdom vnode.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/after-destroy.html">afterDestroy</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterDestroy</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>Method called after destroying Snabbdom vnode.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/after-insert.html">afterInsert</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterInsert</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$afterInsert(com.github.snabbdom.VNode)/node">node</span><span class="symbol">:</span>&nbsp;<span class="identifier">VNode</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>Method called after inserting Snabbdom vnode into the DOM.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/after-postpatch.html">afterPostpatch</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">afterPostpatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$afterPostpatch(com.github.snabbdom.VNode)/node">node</span><span class="symbol">:</span>&nbsp;<span class="identifier">VNode</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>Method called after updating Snabbdom vnode.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/get-element.html">getElement</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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/-widget/get-element-j-query.html">getElementJQuery</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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/-widget/get-element-j-query-d.html">getElementJQueryD</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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/-widget/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.core/-widget/get-sn-hooks.html">getSnHooks</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnHooks</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Hooks</span><span class="symbol">?</span></code>
+<p>Returns list of hooks in the form of a Snabbdom <em>Hooks</em> object.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/get-sn-on.html">getSnOn</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getSnOn</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">On</span><span class="symbol">?</span></code>
+<p>Returns list of event handlers in the form of a Snabbdom <em>On</em> object.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/hide.html">hide</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">hide</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Makes current widget invisible.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/remove-css-class.html">removeCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$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/-widget/index.html"><span class="identifier">Widget</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/-widget/remove-event-listeners.html">removeEventListeners</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeEventListeners</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Removes all event listeners from current widget.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/remove-surrounding-css-class.html">removeSurroundingCssClass</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeSurroundingCssClass</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$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/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Removes given value from the set of CSS classes generated in html code of parent component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/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="identifier" id="pl.treksoft.kvision.core.Widget$render(kotlin.String)/elementName">elementName</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><span class="identifier">VNode</span></code><br/>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">render</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$render(kotlin.String, kotlin.Array((kotlin.Any)))/elementName">elementName</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.core.Widget$render(kotlin.String, kotlin.Array((kotlin.Any)))/children">children</span><span class="symbol">:</span>&nbsp;<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="keyword">dynamic</span><span class="symbol">&gt;</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="../../pl.treksoft.kvision.core/-widget/set-event-listener.html">setEventListener</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span> <span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.core.Widget.setEventListener.T)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-widget/set-event-listener.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Sets an event listener for current widget, keeping the actual type of component.</p>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.core.Widget)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Sets an event listener for current widget.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/show.html">show</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">show</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Makes current widget visible.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">toggleVisible</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Toggles visibility of current widget.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/label.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/label.html
new file mode 100644
index 00000000..119a42ed
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/label.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.label - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./label.html">label</a><br/>
+<br/>
+<h1>label</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$label"></a>
+<code><span class="keyword">var </span><span class="identifier">label</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The label of the option.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/render.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/render.html
new file mode 100644
index 00000000..b548132f
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/render.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./render.html">render</a><br/>
+<br/>
+<h1>render</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$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.core/-widget/render.html">Widget.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/docs/api/pl.treksoft.kvision.form.select/-select-option/subtext.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/subtext.html
new file mode 100644
index 00000000..44e6e06e
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/subtext.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.subtext - 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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./subtext.html">subtext</a><br/>
+<br/>
+<h1>subtext</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$subtext"></a>
+<code><span class="keyword">var </span><span class="identifier">subtext</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The subtext after the label of the option.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select-option/value.html b/docs/api/pl.treksoft.kvision.form.select/-select-option/value.html
new file mode 100644
index 00000000..c557edae
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select-option/value.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SelectOption.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.select</a>&nbsp;/&nbsp;<a href="index.html">SelectOption</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.select.SelectOption$value"></a>
+<code><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>The value of the option.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/-init-.html b/docs/api/pl.treksoft.kvision.form.select/-select/-init-.html
new file mode 100644
index 00000000..52fd3990
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/-init-.html
@@ -0,0 +1,29 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.<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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.form.select.Select$&lt;init&gt;(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)"></a>
+<code><span class="identifier">Select</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/value">value</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/multiple">multiple</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/ajaxOptions">ajaxOptions</span><span class="symbol">:</span>&nbsp;<a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/label">label</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, 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="options"></a>
+<code>options</code> - an optional list of options (label to value pairs) for the select control</p>
+<p><a name="value"></a>
+<code>value</code> - selected value</p>
+<p><a name="multiple"></a>
+<code>multiple</code> - allows multiple value selection (multiple values are comma delimited)</p>
+<p><a name="ajaxOptions"></a>
+<code>ajaxOptions</code> - additional options for remote (AJAX) data source</p>
+<p><a name="label"></a>
+<code>label</code> - label text bound to the input element</p>
+<p><a name="rich"></a>
+<code>rich</code> - determines if <a href="-init-.html#pl.treksoft.kvision.form.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/label">label</a> can contain HTML code</p>
+<p><strong>Constructor</strong><br/>
+</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/add-all.html b/docs/api/pl.treksoft.kvision.form.select/-select/add-all.html
new file mode 100644
index 00000000..344089e6
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/add-all.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.addAll - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./add-all.html">addAll</a><br/>
+<br/>
+<h1>addAll</h1>
+<a name="pl.treksoft.kvision.form.select.Select$addAll(kotlin.collections.List((pl.treksoft.kvision.core.Component)))"></a>
+<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.form.select.Select$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/add-all.html">SimplePanel.addAll</a></p>
+<p>Adds a list of components to the current container.</p>
+<h3>Parameters</h3>
+<p><a name="children"></a>
+<code>children</code> - list of child components</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/add.html b/docs/api/pl.treksoft.kvision.form.select/-select/add.html
new file mode 100644
index 00000000..757b78a3
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/add.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
+<br/>
+<h1>add</h1>
+<a name="pl.treksoft.kvision.form.select.Select$add(pl.treksoft.kvision.core.Component)"></a>
+<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.form.select.Select$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/add.html">SimplePanel.add</a></p>
+<p>Adds given component to the current container.</p>
+<h3>Parameters</h3>
+<p><a name="child"></a>
+<code>child</code> - child component</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/ajax-options.html b/docs/api/pl.treksoft.kvision.form.select/-select/ajax-options.html
new file mode 100644
index 00000000..db0fbe42
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/ajax-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.ajaxOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./ajax-options.html">ajaxOptions</a><br/>
+<br/>
+<h1>ajaxOptions</h1>
+<a name="pl.treksoft.kvision.form.select.Select$ajaxOptions"></a>
+<code><span class="keyword">var </span><span class="identifier">ajaxOptions</span><span class="symbol">: </span><a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">?</span></code>
+<p>Additional options for remote (AJAX) data source.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/autofocus.html b/docs/api/pl.treksoft.kvision.form.select/-select/autofocus.html
new file mode 100644
index 00000000..b7e18582
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/autofocus.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.autofocus - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./autofocus.html">autofocus</a><br/>
+<br/>
+<h1>autofocus</h1>
+<a name="pl.treksoft.kvision.form.select.Select$autofocus"></a>
+<code><span class="keyword">var </span><span class="identifier">autofocus</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the select is automatically focused.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/disabled.html b/docs/api/pl.treksoft.kvision.form.select/-select/disabled.html
new file mode 100644
index 00000000..89dde5bd
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/disabled.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./disabled.html">disabled</a><br/>
+<br/>
+<h1>disabled</h1>
+<a name="pl.treksoft.kvision.form.select.Select$disabled"></a>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.form/-form-control/disabled.html">FormControl.disabled</a></p>
+<p>Determines if the field is disabled.</p>
+<p><strong>Getter</strong><br/>
+<p>Determines if the field is disabled.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>Determines if the field is disabled.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/empty-option.html b/docs/api/pl.treksoft.kvision.form.select/-select/empty-option.html
new file mode 100644
index 00000000..10235d84
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/empty-option.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.emptyOption - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./empty-option.html">emptyOption</a><br/>
+<br/>
+<h1>emptyOption</h1>
+<a name="pl.treksoft.kvision.form.select.Select$emptyOption"></a>
+<code><span class="keyword">var </span><span class="identifier">emptyOption</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 an empty option is automatically generated.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/flabel.html b/docs/api/pl.treksoft.kvision.form.select/-select/flabel.html
new file mode 100644
index 00000000..77a1aca4
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/flabel.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./flabel.html">flabel</a><br/>
+<br/>
+<h1>flabel</h1>
+<a name="pl.treksoft.kvision.form.select.Select$flabel"></a>
+<code><span class="keyword">val </span><span class="identifier">flabel</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-field-label/index.html"><span class="identifier">FieldLabel</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.form/-form-control/flabel.html">FormControl.flabel</a></p>
+<p>Form field label.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/get-children.html b/docs/api/pl.treksoft.kvision.form.select/-select/get-children.html
new file mode 100644
index 00000000..d2695945
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/get-children.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.getChildren - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./get-children.html">getChildren</a><br/>
+<br/>
+<h1>getChildren</h1>
+<a name="pl.treksoft.kvision.form.select.Select$getChildren()"></a>
+<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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/get-children.html">SimplePanel.getChildren</a></p>
+<p>Returns a list of children of the current container.</p>
+<p><strong>Return</strong><br/>
+list of children</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/get-sn-class.html b/docs/api/pl.treksoft.kvision.form.select/-select/get-sn-class.html
new file mode 100644
index 00000000..7056df18
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/get-sn-class.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./get-sn-class.html">getSnClass</a><br/>
+<br/>
+<h1>getSnClass</h1>
+<a name="pl.treksoft.kvision.form.select.Select$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/docs/api/pl.treksoft.kvision.form.select/-select/hide-options.html b/docs/api/pl.treksoft.kvision.form.select/-select/hide-options.html
new file mode 100644
index 00000000..a9d285fc
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/hide-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.hideOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./hide-options.html">hideOptions</a><br/>
+<br/>
+<h1>hideOptions</h1>
+<a name="pl.treksoft.kvision.form.select.Select$hideOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">hideOptions</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>Hides dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/index.html b/docs/api/pl.treksoft.kvision.form.select/-select/index.html
new file mode 100644
index 00000000..0954c87a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/index.html
@@ -0,0 +1,378 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select - 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.select</a>&nbsp;/&nbsp;<a href="./index.html">Select</a><br/>
+<br/>
+<h1>Select</h1>
+<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="../../pl.treksoft.kvision.form/-string-form-control/index.html"><span class="identifier">StringFormControl</span></a></code>
+<p>The form field component for Select control.</p>
+<p>The select control can be populated directly from <em>options</em> parameter or manually by adding
+<a href="../-select-option/index.html">SelectOption</a> or <a href="../-select-opt-group/index.html">SelectOptGroup</a> components to the container.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Select</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/options">options</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/-string-pair.html"><span class="identifier">StringPair</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/value">value</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/multiple">multiple</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/ajaxOptions">ajaxOptions</span><span class="symbol">:</span>&nbsp;<a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, kotlin.String, kotlin.Boolean)/label">label</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.select.Select$<init>(kotlin.collections.List((kotlin.Pair((kotlin.String, )))), kotlin.String, kotlin.Boolean, pl.treksoft.kvision.form.select.AjaxOptions, 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>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="ajax-options.html">ajaxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">ajaxOptions</span><span class="symbol">: </span><a href="../-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">?</span></code>
+<p>Additional options for remote (AJAX) data source.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="autofocus.html">autofocus</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">autofocus</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code>
+<p>Determines if the select is automatically focused.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="disabled.html">disabled</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">disabled</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Determines if the field is disabled.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="empty-option.html">emptyOption</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">emptyOption</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 an empty option is automatically generated.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="flabel.html">flabel</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">flabel</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-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">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-select-input/index.html"><span class="identifier">SelectInput</span></a></code>
+<p>The actual input component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="label.html">label</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">label</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The label text bound to the select element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="live-search.html">liveSearch</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">liveSearch</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 live search is available.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="max-options.html">maxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="multiple.html">multiple</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">multiple</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 multiple value selection is allowed.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="name.html">name</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML select element.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="options.html">options</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">options</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><span class="symbol">?</span></code>
+<p>A list of options (label to value pairs) for the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="placeholder.html">placeholder</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">placeholder</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The placeholder for the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="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="label.html">label</a> can contain HTML code.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="select-width.html">selectWidth</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">selectWidth</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-css-size.html"><span class="identifier">CssSize</span></a><span class="symbol">?</span></code>
+<p>The width of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="select-width-type.html">selectWidthType</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">selectWidthType</span><span class="symbol">: </span><a href="../-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html"><span class="identifier">SELECTWIDTHTYPE</span></a><span class="symbol">?</span></code>
+<p>The width type of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="size.html">size</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-i-n-p-u-t-s-i-z-e/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="style.html">style</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">style</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-b-u-t-t-o-n-s-t-y-l-e/index.html"><span class="identifier">BUTTONSTYLE</span></a><span class="symbol">?</span></code>
+<p>The style of the select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="validation-info.html">validationInfo</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">validationInfo</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-help-block/index.html"><span class="identifier">HelpBlock</span></a></code>
+<p>Validation info component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="value.html">value</a></p>
+</td>
+<td>
+<code><span class="keyword">open</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>A value of the selected option.</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="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$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="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.form.select.Select$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="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="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="hide-options.html">hideOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">hideOptions</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>Hides dropdown with options.</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.select.Select$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>
+<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="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>Removes all children from the current container.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remove-event-listeners.html">removeEventListeners</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeEventListeners</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Removes all event listeners from current widget.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="set-event-listener.html">setEventListener</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span> <span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.form.select.Select.setEventListener.T)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="set-event-listener.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Sets an event listener for current widget, keeping the actual type of component.</p>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.core.Widget)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Sets an event listener for current widget.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="show-options.html">showOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">showOptions</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>Opens dropdown with options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="toggle-options.html">toggleOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">toggleOptions</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>Toggles visibility of dropdown with options.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<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.form/-string-form-control/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="../../pl.treksoft.kvision.form/-string-form-control/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="../../pl.treksoft.kvision.panel/-simple-panel/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="../../pl.treksoft.kvision.form/-string-form-control/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>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/input.html b/docs/api/pl.treksoft.kvision.form.select/-select/input.html
new file mode 100644
index 00000000..c05a12ca
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/input.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./input.html">input</a><br/>
+<br/>
+<h1>input</h1>
+<a name="pl.treksoft.kvision.form.select.Select$input"></a>
+<code><span class="keyword">val </span><span class="identifier">input</span><span class="symbol">: </span><a href="../-select-input/index.html"><span class="identifier">SelectInput</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.form/-form-control/input.html">FormControl.input</a></p>
+<p>The actual input component.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/label.html b/docs/api/pl.treksoft.kvision.form.select/-select/label.html
new file mode 100644
index 00000000..fa69c42c
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/label.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.label - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./label.html">label</a><br/>
+<br/>
+<h1>label</h1>
+<a name="pl.treksoft.kvision.form.select.Select$label"></a>
+<code><span class="keyword">var </span><span class="identifier">label</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The label text bound to the select element.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/live-search.html b/docs/api/pl.treksoft.kvision.form.select/-select/live-search.html
new file mode 100644
index 00000000..7623c56d
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/live-search.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.liveSearch - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./live-search.html">liveSearch</a><br/>
+<br/>
+<h1>liveSearch</h1>
+<a name="pl.treksoft.kvision.form.select.Select$liveSearch"></a>
+<code><span class="keyword">var </span><span class="identifier">liveSearch</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 live search is available.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/max-options.html b/docs/api/pl.treksoft.kvision.form.select/-select/max-options.html
new file mode 100644
index 00000000..9d472c4f
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/max-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.maxOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./max-options.html">maxOptions</a><br/>
+<br/>
+<h1>maxOptions</h1>
+<a name="pl.treksoft.kvision.form.select.Select$maxOptions"></a>
+<code><span class="keyword">var </span><span class="identifier">maxOptions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span></code>
+<p>Maximal number of selected options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/multiple.html b/docs/api/pl.treksoft.kvision.form.select/-select/multiple.html
new file mode 100644
index 00000000..a5932e98
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/multiple.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.multiple - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./multiple.html">multiple</a><br/>
+<br/>
+<h1>multiple</h1>
+<a name="pl.treksoft.kvision.form.select.Select$multiple"></a>
+<code><span class="keyword">var </span><span class="identifier">multiple</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 multiple value selection is allowed.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/name.html b/docs/api/pl.treksoft.kvision.form.select/-select/name.html
new file mode 100644
index 00000000..06181eaf
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/name.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.name - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./name.html">name</a><br/>
+<br/>
+<h1>name</h1>
+<a name="pl.treksoft.kvision.form.select.Select$name"></a>
+<code><span class="keyword">var </span><span class="identifier">name</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The name attribute of the generated HTML select element.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/options.html b/docs/api/pl.treksoft.kvision.form.select/-select/options.html
new file mode 100644
index 00000000..0af371aa
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.options - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./options.html">options</a><br/>
+<br/>
+<h1>options</h1>
+<a name="pl.treksoft.kvision.form.select.Select$options"></a>
+<code><span class="keyword">var </span><span class="identifier">options</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><span class="symbol">?</span></code>
+<p>A list of options (label to value pairs) for the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/placeholder.html b/docs/api/pl.treksoft.kvision.form.select/-select/placeholder.html
new file mode 100644
index 00000000..7a1c3aea
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/placeholder.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.placeholder - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./placeholder.html">placeholder</a><br/>
+<br/>
+<h1>placeholder</h1>
+<a name="pl.treksoft.kvision.form.select.Select$placeholder"></a>
+<code><span class="keyword">var </span><span class="identifier">placeholder</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+<p>The placeholder for the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/remove-all.html b/docs/api/pl.treksoft.kvision.form.select/-select/remove-all.html
new file mode 100644
index 00000000..5ef0367a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/remove-all.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./remove-all.html">removeAll</a><br/>
+<br/>
+<h1>removeAll</h1>
+<a name="pl.treksoft.kvision.form.select.Select$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="../../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></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/docs/api/pl.treksoft.kvision.form.select/-select/remove-event-listeners.html b/docs/api/pl.treksoft.kvision.form.select/-select/remove-event-listeners.html
new file mode 100644
index 00000000..7114bc55
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/remove-event-listeners.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.removeEventListeners - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./remove-event-listeners.html">removeEventListeners</a><br/>
+<br/>
+<h1>removeEventListeners</h1>
+<a name="pl.treksoft.kvision.form.select.Select$removeEventListeners()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">removeEventListeners</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.core/-widget/remove-event-listeners.html">Widget.removeEventListeners</a></p>
+<p>Removes all event listeners from current widget.</p>
+<p><strong>Return</strong><br/>
+current widget</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/remove.html b/docs/api/pl.treksoft.kvision.form.select/-select/remove.html
new file mode 100644
index 00000000..c8513957
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/remove.html
@@ -0,0 +1,21 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./remove.html">remove</a><br/>
+<br/>
+<h1>remove</h1>
+<a name="pl.treksoft.kvision.form.select.Select$remove(pl.treksoft.kvision.core.Component)"></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.select.Select$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>Overrides <a href="../../pl.treksoft.kvision.panel/-simple-panel/remove.html">SimplePanel.remove</a></p>
+<p>Removes given component from the current container.</p>
+<h3>Parameters</h3>
+<p><a name="child"></a>
+<code>child</code> - child component</p>
+<p><strong>Return</strong><br/>
+current container</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/rich.html b/docs/api/pl.treksoft.kvision.form.select/-select/rich.html
new file mode 100644
index 00000000..c9558d15
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/rich.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.rich - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./rich.html">rich</a><br/>
+<br/>
+<h1>rich</h1>
+<a name="pl.treksoft.kvision.form.select.Select$rich"></a>
+<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="label.html">label</a> can contain HTML code.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/select-width-type.html b/docs/api/pl.treksoft.kvision.form.select/-select/select-width-type.html
new file mode 100644
index 00000000..d0855aa5
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/select-width-type.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.selectWidthType - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./select-width-type.html">selectWidthType</a><br/>
+<br/>
+<h1>selectWidthType</h1>
+<a name="pl.treksoft.kvision.form.select.Select$selectWidthType"></a>
+<code><span class="keyword">var </span><span class="identifier">selectWidthType</span><span class="symbol">: </span><a href="../-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html"><span class="identifier">SELECTWIDTHTYPE</span></a><span class="symbol">?</span></code>
+<p>The width type of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/select-width.html b/docs/api/pl.treksoft.kvision.form.select/-select/select-width.html
new file mode 100644
index 00000000..1bde09e8
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/select-width.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.selectWidth - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./select-width.html">selectWidth</a><br/>
+<br/>
+<h1>selectWidth</h1>
+<a name="pl.treksoft.kvision.form.select.Select$selectWidth"></a>
+<code><span class="keyword">var </span><span class="identifier">selectWidth</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-css-size.html"><span class="identifier">CssSize</span></a><span class="symbol">?</span></code>
+<p>The width of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/set-event-listener.html b/docs/api/pl.treksoft.kvision.form.select/-select/set-event-listener.html
new file mode 100644
index 00000000..e287eb24
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/set-event-listener.html
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.setEventListener - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./set-event-listener.html">setEventListener</a><br/>
+<br/>
+<h1>setEventListener</h1>
+<a name="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.form.select.Select.setEventListener.T)), kotlin.Unit)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span> <span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.form.select.Select.setEventListener.T)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="set-event-listener.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.core/-widget/set-event-listener.html">Widget.setEventListener</a></p>
+<p>Sets an event listener for current widget, keeping the actual type of component.</p>
+<h3>Parameters</h3>
+<p><a name="T"></a>
+<code>T</code> - widget type</p>
+<p><a name="block"></a>
+<code>block</code> - event handler</p>
+<p><strong>Return</strong><br/>
+<p>current widget</p>
+
+
+<p>Example:</p>
+
+
+<pre><code> button.setEventListener&lt;Button&gt; {
+ dblclick = {
+ Alert.show("Button double clicked!")
+ // self is of type Button here
+ }
+ }</code></pre></p>
+<a name="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.core.Widget)), kotlin.Unit)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setEventListener</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select.Select$setEventListener(kotlin.Function1((pl.treksoft.kvision.utils.SnOn((pl.treksoft.kvision.core.Widget)), kotlin.Unit)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="identifier">SnOn</span><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.core/-widget/set-event-listener.html">Widget.setEventListener</a></p>
+<p>Sets an event listener for current widget.</p>
+<h3>Parameters</h3>
+<p><a name="block"></a>
+<code>block</code> - event handler</p>
+<p><strong>Return</strong><br/>
+<p>current widget</p>
+
+
+<p>Example:</p>
+
+
+<pre><code> button.setEventListener {
+ dblclick = {
+ Alert.show("Button double clicked!")
+ // self is of type Widget here
+ }
+ }</code></pre></p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/show-options.html b/docs/api/pl.treksoft.kvision.form.select/-select/show-options.html
new file mode 100644
index 00000000..fa16c71c
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/show-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.showOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./show-options.html">showOptions</a><br/>
+<br/>
+<h1>showOptions</h1>
+<a name="pl.treksoft.kvision.form.select.Select$showOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">showOptions</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>Opens dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/size.html b/docs/api/pl.treksoft.kvision.form.select/-select/size.html
new file mode 100644
index 00000000..cf50994b
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/size.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./size.html">size</a><br/>
+<br/>
+<h1>size</h1>
+<a name="pl.treksoft.kvision.form.select.Select$size"></a>
+<code><span class="keyword">open</span> <span class="keyword">var </span><span class="identifier">size</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-i-n-p-u-t-s-i-z-e/index.html"><span class="identifier">INPUTSIZE</span></a><span class="symbol">?</span></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.form/-form-control/size.html">FormControl.size</a></p>
+<p>Input control size.</p>
+<p><strong>Getter</strong><br/>
+<p>Input control size.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>Input control size.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/style.html b/docs/api/pl.treksoft.kvision.form.select/-select/style.html
new file mode 100644
index 00000000..0fa3e464
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/style.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.style - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./style.html">style</a><br/>
+<br/>
+<h1>style</h1>
+<a name="pl.treksoft.kvision.form.select.Select$style"></a>
+<code><span class="keyword">var </span><span class="identifier">style</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.html/-b-u-t-t-o-n-s-t-y-l-e/index.html"><span class="identifier">BUTTONSTYLE</span></a><span class="symbol">?</span></code>
+<p>The style of the select control.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/toggle-options.html b/docs/api/pl.treksoft.kvision.form.select/-select/toggle-options.html
new file mode 100644
index 00000000..3958bb97
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/toggle-options.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.toggleOptions - 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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./toggle-options.html">toggleOptions</a><br/>
+<br/>
+<h1>toggleOptions</h1>
+<a name="pl.treksoft.kvision.form.select.Select$toggleOptions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">toggleOptions</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>Toggles visibility of dropdown with options.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/validation-info.html b/docs/api/pl.treksoft.kvision.form.select/-select/validation-info.html
new file mode 100644
index 00000000..bb315130
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/validation-info.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./validation-info.html">validationInfo</a><br/>
+<br/>
+<h1>validationInfo</h1>
+<a name="pl.treksoft.kvision.form.select.Select$validationInfo"></a>
+<code><span class="keyword">val </span><span class="identifier">validationInfo</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.form/-help-block/index.html"><span class="identifier">HelpBlock</span></a></code>
+<p>Overrides <a href="../../pl.treksoft.kvision.form/-form-control/validation-info.html">FormControl.validationInfo</a></p>
+<p>Validation info component.</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/-select/value.html b/docs/api/pl.treksoft.kvision.form.select/-select/value.html
new file mode 100644
index 00000000..5ce6848c
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/-select/value.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Select.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.select</a>&nbsp;/&nbsp;<a href="index.html">Select</a>&nbsp;/&nbsp;<a href="./value.html">value</a><br/>
+<br/>
+<h1>value</h1>
+<a name="pl.treksoft.kvision.form.select.Select$value"></a>
+<code><span class="keyword">open</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>Overrides <a href="../../pl.treksoft.kvision.form/-string-form-control/value.html">StringFormControl.value</a></p>
+<p>A value of the selected option.</p>
+<p><strong>Getter</strong><br/>
+<p>Text value.</p>
+</p>
+<p><strong>Setter</strong><br/>
+<p>Text value.</p>
+</p>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/index.html b/docs/api/pl.treksoft.kvision.form.select/index.html
new file mode 100644
index 00000000..4a35420a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/index.html
@@ -0,0 +1,104 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.form.select - 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.select</a><br/>
+<br/>
+<h2>Package pl.treksoft.kvision.form.select</h2>
+<p>Full-featured select component with support for remote (AJAX) data source.</p>
+<h3>Types</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-ajax-options/index.html">AjaxOptions</a></p>
+</td>
+<td>
+<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">AjaxOptions</span></code>
+<p>Data class for AJAX options.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-d-a-t-a-t-y-p-e/index.html">DATATYPE</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">DATATYPE</span></code>
+<p>Data type for the AJAX call.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-h-t-t-p-t-y-p-e/index.html">HTTPTYPE</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">HTTPTYPE</span></code>
+<p>HTTP protocol type for the AJAX call.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-s-e-l-e-c-t-w-i-d-t-h-t-y-p-e/index.html">SELECTWIDTHTYPE</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">SELECTWIDTHTYPE</span></code>
+<p>Select width types. See <a href="http://silviomoreto.github.io/bootstrap-select/examples/#width">Bootstrap Select width</a>.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-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="../pl.treksoft.kvision.form/-string-form-control/index.html"><span class="identifier">StringFormControl</span></a></code>
+<p>The form field component for Select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-select-input/index.html">SelectInput</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectInput</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.panel/-simple-panel/index.html"><span class="identifier">SimplePanel</span></a></code>
+<p>The basic component for Select control.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-select-opt-group/index.html">SelectOptGroup</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectOptGroup</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>The helper container for adding option groups to <a href="-select/index.html">Select</a>.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-select-option/index.html">SelectOption</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">SelectOption</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>The helper component for adding options to <a href="-select/index.html">Select</a> or <a href="-select-opt-group/index.html">SelectOptGroup</a>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="to-js.html">toJs</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><a href="-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">.</span><span class="identifier">toJs</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select$toJs(pl.treksoft.kvision.form.select.AjaxOptions, kotlin.Boolean)/emptyOption">emptyOption</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><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Convert AjaxOptions to JavaScript JSON object.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/docs/api/pl.treksoft.kvision.form.select/to-js.html b/docs/api/pl.treksoft.kvision.form.select/to-js.html
new file mode 100644
index 00000000..744dbb7a
--- /dev/null
+++ b/docs/api/pl.treksoft.kvision.form.select/to-js.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>toJs - 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.select</a>&nbsp;/&nbsp;<a href="./to-js.html">toJs</a><br/>
+<br/>
+<h1>toJs</h1>
+<a name="pl.treksoft.kvision.form.select$toJs(pl.treksoft.kvision.form.select.AjaxOptions, kotlin.Boolean)"></a>
+<code><span class="keyword">fun </span><a href="-ajax-options/index.html"><span class="identifier">AjaxOptions</span></a><span class="symbol">.</span><span class="identifier">toJs</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.select$toJs(pl.treksoft.kvision.form.select.AjaxOptions, kotlin.Boolean)/emptyOption">emptyOption</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><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Convert AjaxOptions to JavaScript JSON object.</p>
+<h3>Parameters</h3>
+<p><a name="emptyOption"></a>
+<code>emptyOption</code> - add an empty position as the first select option</p>
+<p><strong>Return</strong><br/>
+JSON object</p>
+</BODY>
+</HTML>