summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/alltypes/index.html33
-rw-r--r--api/index-outline.html129
-rw-r--r--api/index.html7
-rw-r--r--api/package-list1
-rw-r--r--api/pl.treksoft.kvision.chart/-chart/index.html7
-rw-r--r--api/pl.treksoft.kvision.core/-widget/index.html16
-rw-r--r--api/pl.treksoft.kvision.core/-widget/single-render.html14
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.check/-check-input/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.select/-select-option/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.spinner/-spinner-input/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.text/-abstract-text-input/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.time/-date-time-input/index.html7
-rw-r--r--api/pl.treksoft.kvision.form.upload/-upload-input/index.html7
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/field-label.html16
-rw-r--r--api/pl.treksoft.kvision.form/-field-label/index.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/index.html18
-rw-r--r--api/pl.treksoft.kvision.form/-form/fields.html14
-rw-r--r--api/pl.treksoft.kvision.form/-form/get-data-with-file-content.html17
-rw-r--r--api/pl.treksoft.kvision.form/-form/index.html37
-rw-r--r--api/pl.treksoft.kvision.form/-form/model-factory.html14
-rw-r--r--api/pl.treksoft.kvision.html/-button/index.html7
-rw-r--r--api/pl.treksoft.kvision.html/-canvas/index.html7
-rw-r--r--api/pl.treksoft.kvision.html/-iframe/index.html7
-rw-r--r--api/pl.treksoft.kvision.html/-image/index.html7
-rw-r--r--api/pl.treksoft.kvision.modal/-close-icon/index.html7
-rw-r--r--api/pl.treksoft.kvision.panel/-simple-panel/index.html7
-rw-r--r--api/pl.treksoft.kvision.redux/-dispatch.html13
-rw-r--r--api/pl.treksoft.kvision.redux/-get-state.html13
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/-init-.html30
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/dispatch.html18
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/get-state.html15
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/index.html91
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/state-serializer.html15
-rw-r--r--api/pl.treksoft.kvision.redux/-redux-store/subscribe.html15
-rw-r--r--api/pl.treksoft.kvision.redux/-state-binding/-init-.html30
-rw-r--r--api/pl.treksoft.kvision.redux/-state-binding/index.html415
-rw-r--r--api/pl.treksoft.kvision.redux/-state-binding/state-binding.html16
-rw-r--r--api/pl.treksoft.kvision.redux/-state-binding/update.html15
-rw-r--r--api/pl.treksoft.kvision.redux/create-redux-store.html22
-rw-r--r--api/pl.treksoft.kvision.redux/index.html69
-rw-r--r--api/pl.treksoft.kvision.utils/get-data-with-file-content.html19
-rw-r--r--api/pl.treksoft.kvision.utils/index.html10
44 files changed, 1176 insertions, 75 deletions
diff --git a/api/alltypes/index.html b/api/alltypes/index.html
index 135a87b3..efed37c1 100644
--- a/api/alltypes/index.html
+++ b/api/alltypes/index.html
@@ -716,15 +716,15 @@
</tr>
<tr>
<td>
-<a href="../pl.treksoft.kvision.electron/-dialog/index.html">pl.treksoft.kvision.electron.Dialog</a></td>
+<a href="../pl.treksoft.kvision.modal/-dialog/index.html">pl.treksoft.kvision.modal.Dialog</a></td>
<td>
+<p>Modal window with a result.</p>
</td>
</tr>
<tr>
<td>
-<a href="../pl.treksoft.kvision.modal/-dialog/index.html">pl.treksoft.kvision.modal.Dialog</a></td>
+<a href="../pl.treksoft.kvision.electron/-dialog/index.html">pl.treksoft.kvision.electron.Dialog</a></td>
<td>
-<p>Modal window with a result.</p>
</td>
</tr>
<tr>
@@ -785,6 +785,12 @@
</tr>
<tr>
<td>
+<a href="../pl.treksoft.kvision.redux/-dispatch.html">pl.treksoft.kvision.redux.Dispatch</a></td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
<a href="../pl.treksoft.kvision.electron/-display/index.html">pl.treksoft.kvision.electron.Display</a></td>
<td>
</td>
@@ -1085,6 +1091,12 @@
</tr>
<tr>
<td>
+<a href="../pl.treksoft.kvision.redux/-get-state.html">pl.treksoft.kvision.redux.GetState</a></td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
<a href="../pl.treksoft.kvision.electron/-global-shortcut/index.html">pl.treksoft.kvision.electron.GlobalShortcut</a></td>
<td>
</td>
@@ -2164,6 +2176,14 @@
</tr>
<tr>
<td>
+<a href="../pl.treksoft.kvision.redux/-redux-store/index.html">pl.treksoft.kvision.redux.ReduxStore</a></td>
+<td>
+<p>A class implementing redux pattern backed by the original Redux JS library.
+It requires @Serializable state.</p>
+</td>
+</tr>
+<tr>
+<td>
<a href="../pl.treksoft.kvision.electron/-register-buffer-protocol-request/index.html">pl.treksoft.kvision.electron.RegisterBufferProtocolRequest</a></td>
<td>
</td>
@@ -2578,6 +2598,13 @@
</tr>
<tr>
<td>
+<a href="../pl.treksoft.kvision.redux/-state-binding/index.html">pl.treksoft.kvision.redux.StateBinding</a></td>
+<td>
+<p>A class which binds the redux store with the given container.</p>
+</td>
+</tr>
+<tr>
+<td>
<a href="../pl.treksoft.kvision.electron/-stream-protocol-response/index.html">pl.treksoft.kvision.electron.StreamProtocolResponse</a></td>
<td>
</td>
diff --git a/api/index-outline.html b/api/index-outline.html
index c2be5ecc..68046587 100644
--- a/api/index-outline.html
+++ b/api/index-outline.html
@@ -3495,7 +3495,7 @@
</HTML>
</ul>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dev-tools-extensions.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">DevToolsExtensions</span></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">Dialog</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-event-emitter/index.html"><span class="identifier">EventEmitter</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/index.html"><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Dialog</span><span class="symbol">&lt;</span><span class="identifier">R</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-modal/index.html"><span class="identifier">Modal</span></a></a></a><br/>
<ul>
<HTML>
<HEAD>
@@ -3504,20 +3504,14 @@
<link rel="stylesheet" href="../style.css">
</HEAD>
<BODY>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-error-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showErrorBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showErrorBox(kotlin.String, kotlin.String)/title">title</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.electron.Dialog$showErrorBox(kotlin.String, kotlin.String)/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-message-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showMessageBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-message-box-options/index.html"><span class="identifier">MessageBoxOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">response</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">checkboxChecked</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>&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>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-message-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showMessageBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-message-box-options/index.html"><span class="identifier">MessageBoxOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">response</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">checkboxChecked</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>&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>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-open-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showOpenDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-open-dialog-options/index.html"><span class="identifier">OpenDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filePaths</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">bookmarks</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-open-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showOpenDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-open-dialog-options/index.html"><span class="identifier">OpenDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filePaths</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">bookmarks</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-save-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showSaveDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-save-dialog-options/index.html"><span class="identifier">SaveDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filename</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="identifier">bookmark</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">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-save-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showSaveDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-save-dialog-options/index.html"><span class="identifier">SaveDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filename</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="identifier">bookmark</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">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/-init-.html"><span class="identifier">Dialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/caption">caption</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/closeButton">closeButton</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/size">size</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-modal-size/index.html"><span class="identifier">ModalSize</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/animation">animation</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/escape">escape</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-dialog/index.html"><span class="identifier">Dialog</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/get-result.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getResult</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</span></a><span class="symbol">?</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/hide.html"><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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/set-result.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setResult</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$setResult(pl.treksoft.kvision.modal.Dialog.R)/result">result</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</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></a></a><br/>
</BODY>
</HTML>
</ul>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/index.html"><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">Dialog</span><span class="symbol">&lt;</span><span class="identifier">R</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-modal/index.html"><span class="identifier">Modal</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">Dialog</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-event-emitter/index.html"><span class="identifier">EventEmitter</span></a></a></a><br/>
<ul>
<HTML>
<HEAD>
@@ -3526,10 +3520,16 @@
<link rel="stylesheet" href="../style.css">
</HEAD>
<BODY>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/-init-.html"><span class="identifier">Dialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/caption">caption</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/closeButton">closeButton</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/size">size</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-modal-size/index.html"><span class="identifier">ModalSize</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/animation">animation</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/escape">escape</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.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$<init>(kotlin.String, kotlin.Boolean, pl.treksoft.kvision.modal.ModalSize, kotlin.Boolean, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.modal.Dialog((pl.treksoft.kvision.modal.Dialog.R)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-dialog/index.html"><span class="identifier">Dialog</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/get-result.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getResult</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</span></a><span class="symbol">?</span></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/hide.html"><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></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.modal/-dialog/set-result.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setResult</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.modal.Dialog$setResult(pl.treksoft.kvision.modal.Dialog.R)/result">result</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.modal/-dialog/index.html#R"><span class="identifier">R</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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-certificate-trust-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showCertificateTrustDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-certificate-trust-dialog-options/index.html"><span class="identifier">CertificateTrustDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showCertificateTrustDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.CertificateTrustDialogOptions, kotlin.Function((kotlin.Any)))/callback">callback</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function/index.html"><span class="identifier">Function</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-error-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showErrorBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showErrorBox(kotlin.String, kotlin.String)/title">title</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.electron.Dialog$showErrorBox(kotlin.String, kotlin.String)/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-message-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showMessageBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-message-box-options/index.html"><span class="identifier">MessageBoxOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">response</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">checkboxChecked</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>&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>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-message-box.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showMessageBox</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-message-box-options/index.html"><span class="identifier">MessageBoxOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showMessageBox(pl.treksoft.kvision.electron.MessageBoxOptions, kotlin.Function2((kotlin.Number, kotlin.Boolean, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">response</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">checkboxChecked</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>&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>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-number/index.html"><span class="identifier">Number</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-open-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showOpenDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-open-dialog-options/index.html"><span class="identifier">OpenDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filePaths</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">bookmarks</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-open-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showOpenDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-open-dialog-options/index.html"><span class="identifier">OpenDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showOpenDialog(pl.treksoft.kvision.electron.OpenDialogOptions, kotlin.Function2((kotlin.Array((kotlin.String)), , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filePaths</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">bookmarks</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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-save-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showSaveDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/browserWindow">browserWindow</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-browser-window/index.html"><span class="identifier">BrowserWindow</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-save-dialog-options/index.html"><span class="identifier">SaveDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.BrowserWindow, pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filename</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="identifier">bookmark</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">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-dialog/show-save-dialog.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">showSaveDialog</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/options">options</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-save-dialog-options/index.html"><span class="identifier">SaveDialogOptions</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.electron.Dialog$showSaveDialog(pl.treksoft.kvision.electron.SaveDialogOptions, kotlin.Function2((kotlin.String, , kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">filename</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="identifier">bookmark</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">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;definedExternally<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></a></a><br/>
</BODY>
</HTML>
</ul>
@@ -3667,6 +3667,7 @@
</BODY>
</HTML>
</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-dispatch.html"><span class="keyword">typealias </span><span class="identifier">Dispatch</span><span class="symbol">&lt;</span><span class="identifier">A</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-dispatch.html#A"><span class="identifier">A</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-display/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">Display</span></a></a><br/>
<ul>
<HTML>
@@ -4046,6 +4047,7 @@
</HEAD>
<BODY>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/-init-.html"><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/field-label.html"><span class="keyword">fun </span><a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">fieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-field-label/index.html"><span class="identifier">FieldLabel</span></a><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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-field-label/index.html"><span class="identifier">FieldLabel</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/get-sn-attrs.html"><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></a></a><br/>
</BODY>
</HTML>
@@ -4306,11 +4308,12 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/add.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.types/-k-file/index.html"><span class="identifier">KFile</span></a><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/clear-data.html"><span class="keyword">fun </span><span class="identifier">clearData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/create.html"><span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">K</span>&nbsp;<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">&gt;</span> <span class="identifier">create</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form.Companion$create(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Function1((pl.treksoft.kvision.form.Form((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Unit)))/panel">panel</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form-panel/index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.form.Form.Companion$create(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Function1((pl.treksoft.kvision.form.Form((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/fields.html"><span class="keyword">val </span><span class="identifier">fields</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get.html"><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$get(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-control.html"><span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$getControl(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data.html"><span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data-json.html"><span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/model-factory.html"><span class="keyword">val </span><span class="identifier">modelFactory</span><span class="symbol">: </span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/remove.html"><span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$remove(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/remove-all.html"><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.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/set-data.html"><span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$setData(pl.treksoft.kvision.form.Form.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
@@ -4412,7 +4415,6 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-control.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$getControl(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data-json.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-sn-class.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/method.html"><span class="keyword">var </span><span class="identifier">method</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span></a></a><br/>
@@ -4526,6 +4528,7 @@
</BODY>
</HTML>
</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-get-state.html"><span class="keyword">typealias </span><span class="identifier">GetState</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.redux/-get-state.html#S"><span class="identifier">S</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-global-shortcut/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">GlobalShortcut</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.electron/-event-emitter/index.html"><span class="identifier">EventEmitter</span></a></a></a><br/>
<ul>
<HTML>
@@ -7466,6 +7469,24 @@
</BODY>
</HTML>
</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="keyword">class </span><span class="identifier">ReduxStore</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span></a></a><br/>
+<ul>
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Module Contents</title>
+<link rel="stylesheet" href="../style.css">
+</HEAD>
+<BODY>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/-init-.html"><span class="identifier">ReduxStore</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/stateSerializer">stateSerializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/dispatch.html"><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(pl.treksoft.kvision.redux.ReduxStore.A)/action">action</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/dispatch.html"><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(kotlin.Function2((kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.A, )), kotlin.Function0((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Unit)))/action">action</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-dispatch.html"><span class="identifier">Dispatch</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-get-state.html"><span class="identifier">GetState</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/get-state.html"><span class="keyword">fun </span><span class="identifier">getState</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/state-serializer.html"><span class="keyword">val </span><span class="identifier">stateSerializer</span><span class="symbol">: </span><span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/subscribe.html"><span class="keyword">fun </span><span class="identifier">subscribe</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$subscribe(kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.S, kotlin.Unit)))/listener">listener</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><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><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></a></a><br/>
+</BODY>
+</HTML>
+</ul>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-register-buffer-protocol-request/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">RegisterBufferProtocolRequest</span></a></a><br/>
<ul>
<HTML>
@@ -8613,6 +8634,21 @@
</BODY>
</HTML>
</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/index.html"><span class="keyword">class </span><span class="identifier">StateBinding</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></a></a><br/>
+<ul>
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Module Contents</title>
+<link rel="stylesheet" href="../style.css">
+</HEAD>
+<BODY>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/-init-.html"><span class="identifier">StateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="identifier">stateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><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.redux/-state-binding/index.html"><span class="identifier">StateBinding</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/update.html"><span class="keyword">fun </span><span class="identifier">update</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$update(pl.treksoft.kvision.redux.StateBinding.S)/state">state</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
+</BODY>
+</HTML>
+</ul>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.electron/-stream-protocol-response/index.html"><span class="keyword">external</span> <span class="keyword">interface </span><span class="identifier">StreamProtocolResponse</span></a></a><br/>
<ul>
<HTML>
@@ -10731,6 +10767,7 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/set-event-listener.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/set-event-listener.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/show.html"><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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/single-render.html"><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/surrounding-span.html"><span class="keyword">protected</span> <span class="keyword">var </span><span class="identifier">surroundingSpan</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/title.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/toggle-visible.html"><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></a></a><br/>
@@ -13731,6 +13768,7 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/set-event-listener.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/set-event-listener.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/show.html"><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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/single-render.html"><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/surrounding-span.html"><span class="keyword">protected</span> <span class="keyword">var </span><span class="identifier">surroundingSpan</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/title.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.core/-widget/toggle-visible.html"><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></a></a><br/>
@@ -18931,6 +18969,7 @@
</HEAD>
<BODY>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/-init-.html"><span class="identifier">FieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel$<init>(kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">)</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/field-label.html"><span class="keyword">fun </span><a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">fieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-field-label/index.html"><span class="identifier">FieldLabel</span></a><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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-field-label/index.html"><span class="identifier">FieldLabel</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-field-label/get-sn-attrs.html"><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></a></a><br/>
</BODY>
</HTML>
@@ -18952,11 +18991,12 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/add.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-k-files-form-control/index.html"><span class="identifier">KFilesFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.types/-k-file/index.html"><span class="identifier">KFile</span></a><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.Form$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.collections.List((pl.treksoft.kvision.types.KFile)))), pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.Form.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.form/-form/add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/clear-data.html"><span class="keyword">fun </span><span class="identifier">clearData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/create.html"><span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">K</span>&nbsp;<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">&gt;</span> <span class="identifier">create</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form.Companion$create(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Function1((pl.treksoft.kvision.form.Form((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Unit)))/panel">panel</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form-panel/index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.form.Form.Companion$create(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Function1((pl.treksoft.kvision.form.Form((pl.treksoft.kvision.form.Form.Companion.create.K)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/create.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/fields.html"><span class="keyword">val </span><span class="identifier">fields</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get.html"><span class="keyword">operator</span> <span class="keyword">fun </span><span class="identifier">get</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$get(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-control.html"><span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$getControl(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data.html"><span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data-json.html"><span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/model-factory.html"><span class="keyword">val </span><span class="identifier">modelFactory</span><span class="symbol">: </span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/remove.html"><span class="keyword">fun </span><span class="identifier">remove</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$remove(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.Form.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/remove-all.html"><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.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form/set-data.html"><span class="keyword">fun </span><span class="identifier">setData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.Form$setData(pl.treksoft.kvision.form.Form.K)/model">model</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.form/-form/index.html#K"><span class="identifier">K</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
@@ -19058,7 +19098,6 @@
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-control.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getControl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$getControl(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">?</span></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getData</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data-json.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getDataJson</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-json/index.html"><span class="identifier">Json</span></a></a></a><br/>
-<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-panel/index.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-sn-attrs.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/get-sn-class.html"><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></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.form/-form-panel/method.html"><span class="keyword">var </span><span class="identifier">method</span><span class="symbol">: </span><a href="pl.treksoft.kvision.form/-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span></a></a><br/>
@@ -21574,6 +21613,54 @@
</BODY>
</HTML>
</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/index.html"><span class="keyword">package</span> <span class="identifier">pl.treksoft.kvision.redux</span></a></a><br/>
+<ul>
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Module Contents</title>
+<link rel="stylesheet" href="../style.css">
+</HEAD>
+<BODY>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-dispatch.html"><span class="keyword">typealias </span><span class="identifier">Dispatch</span><span class="symbol">&lt;</span><span class="identifier">A</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-dispatch.html#A"><span class="identifier">A</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-get-state.html"><span class="keyword">typealias </span><span class="identifier">GetState</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="pl.treksoft.kvision.redux/-get-state.html#S"><span class="identifier">S</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="keyword">class </span><span class="identifier">ReduxStore</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span></a></a><br/>
+<ul>
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Module Contents</title>
+<link rel="stylesheet" href="../style.css">
+</HEAD>
+<BODY>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/-init-.html"><span class="identifier">ReduxStore</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/stateSerializer">stateSerializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/dispatch.html"><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(pl.treksoft.kvision.redux.ReduxStore.A)/action">action</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/dispatch.html"><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(kotlin.Function2((kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.A, )), kotlin.Function0((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Unit)))/action">action</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-dispatch.html"><span class="identifier">Dispatch</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-get-state.html"><span class="identifier">GetState</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/get-state.html"><span class="keyword">fun </span><span class="identifier">getState</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/state-serializer.html"><span class="keyword">val </span><span class="identifier">stateSerializer</span><span class="symbol">: </span><span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-redux-store/subscribe.html"><span class="keyword">fun </span><span class="identifier">subscribe</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$subscribe(kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.S, kotlin.Unit)))/listener">listener</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-redux-store/index.html#S"><span class="identifier">S</span></a><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><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></a></a><br/>
+</BODY>
+</HTML>
+</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/index.html"><span class="keyword">class </span><span class="identifier">StateBinding</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></a></a><br/>
+<ul>
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Module Contents</title>
+<link rel="stylesheet" href="../style.css">
+</HEAD>
+<BODY>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/-init-.html"><span class="identifier">StateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><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></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="identifier">stateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><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.redux/-state-binding/index.html"><span class="identifier">StateBinding</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/-state-binding/update.html"><span class="keyword">fun </span><span class="identifier">update</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$update(pl.treksoft.kvision.redux.StateBinding.S)/state">state</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/-state-binding/index.html#S"><span class="identifier">S</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
+</BODY>
+</HTML>
+</ul>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.redux/create-redux-store.html"><span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span> <span class="identifier">createReduxStore</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="pl.treksoft.kvision.redux/create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.redux/-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.redux/create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="pl.treksoft.kvision.redux/create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span></a></a><br/>
+</BODY>
+</HTML>
+</ul>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.remote/index.html"><span class="keyword">package</span> <span class="identifier">pl.treksoft.kvision.remote</span></a></a><br/>
<ul>
<HTML>
@@ -22211,6 +22298,8 @@
</HTML>
</ul>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.utils/auto.html"><span class="keyword">val </span><span class="identifier">auto</span><span class="symbol">: </span><a href="pl.treksoft.kvision.core/-css-size.html"><span class="identifier">CssSize</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a></a></a><br/>
+<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html"><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="pl.treksoft.kvision.form/-form-panel/index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.utils/is-i-e11.html"><span class="keyword">fun </span><span class="identifier">isIE11</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></a></a><br/>
<a href="/home/rjaros/git/kvision/build/kdoc/kvision/index"><a href="pl.treksoft.kvision.utils/kotlin.-any/index.html"><span class="identifier">kotlin.Any</span></a></a><br/>
<ul>
diff --git a/api/index.html b/api/index.html
index 53ebe081..4b55568f 100644
--- a/api/index.html
+++ b/api/index.html
@@ -185,6 +185,13 @@ CSS grid and Bootstrap responsive 12 columns gid).</p>
</tr>
<tr>
<td>
+<p><a href="pl.treksoft.kvision.redux/index.html">pl.treksoft.kvision.redux</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="pl.treksoft.kvision.remote/index.html">pl.treksoft.kvision.remote</a></p>
</td>
<td>
diff --git a/api/package-list b/api/package-list
index d13c867f..d093e8eb 100644
--- a/api/package-list
+++ b/api/package-list
@@ -62,6 +62,7 @@ pl.treksoft.kvision.modal
pl.treksoft.kvision.navbar
pl.treksoft.kvision.panel
pl.treksoft.kvision.progress
+pl.treksoft.kvision.redux
pl.treksoft.kvision.remote
pl.treksoft.kvision.routing
pl.treksoft.kvision.table
diff --git a/api/pl.treksoft.kvision.chart/-chart/index.html b/api/pl.treksoft.kvision.chart/-chart/index.html
index 148f9683..1de2af25 100644
--- a/api/pl.treksoft.kvision.chart/-chart/index.html
+++ b/api/pl.treksoft.kvision.chart/-chart/index.html
@@ -427,6 +427,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.core/-widget/index.html b/api/pl.treksoft.kvision.core/-widget/index.html
index 3329b0a8..c0b16629 100644
--- a/api/pl.treksoft.kvision.core/-widget/index.html
+++ b/api/pl.treksoft.kvision.core/-widget/index.html
@@ -874,6 +874,13 @@
</tr>
<tr>
<td>
+<p><a href="single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="toggle-visible.html">toggleVisible</a></p>
</td>
<td>
@@ -1064,6 +1071,15 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.redux/-state-binding/index.html">StateBinding</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">StateBinding</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">Widget</span></a></code>
+<p>A class which binds the redux store with the given container.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.form.upload/-upload-input/index.html">UploadInput</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.core/-widget/single-render.html b/api/pl.treksoft.kvision.core/-widget/single-render.html
new file mode 100644
index 00000000..a038d282
--- /dev/null
+++ b/api/pl.treksoft.kvision.core/-widget/single-render.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Widget.singleRender - 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.core</a>&nbsp;/&nbsp;<a href="index.html">Widget</a>&nbsp;/&nbsp;<a href="./single-render.html">singleRender</a><br/>
+<br/>
+<h1>singleRender</h1>
+<a name="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))"></a>
+<code><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="single-render.html#T"><span class="identifier">T</span></a></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.data/-data-container/index.html b/api/pl.treksoft.kvision.data/-data-container/index.html
index fe467c54..840606ea 100644
--- a/api/pl.treksoft.kvision.data/-data-container/index.html
+++ b/api/pl.treksoft.kvision.data/-data-container/index.html
@@ -437,6 +437,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.check/-check-input/index.html b/api/pl.treksoft.kvision.form.check/-check-input/index.html
index d9f1abc3..913a8d9c 100644
--- a/api/pl.treksoft.kvision.form.check/-check-input/index.html
+++ b/api/pl.treksoft.kvision.form.check/-check-input/index.html
@@ -452,6 +452,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.select/-select-option/index.html b/api/pl.treksoft.kvision.form.select/-select-option/index.html
index 7c470ebb..17884de9 100644
--- a/api/pl.treksoft.kvision.form.select/-select-option/index.html
+++ b/api/pl.treksoft.kvision.form.select/-select-option/index.html
@@ -425,6 +425,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.spinner/-spinner-input/index.html b/api/pl.treksoft.kvision.form.spinner/-spinner-input/index.html
index 50b12639..2a4cc726 100644
--- a/api/pl.treksoft.kvision.form.spinner/-spinner-input/index.html
+++ b/api/pl.treksoft.kvision.form.spinner/-spinner-input/index.html
@@ -540,6 +540,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.text/-abstract-text-input/index.html b/api/pl.treksoft.kvision.form.text/-abstract-text-input/index.html
index 61236259..910a14ab 100644
--- a/api/pl.treksoft.kvision.form.text/-abstract-text-input/index.html
+++ b/api/pl.treksoft.kvision.form.text/-abstract-text-input/index.html
@@ -453,6 +453,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.time/-date-time-input/index.html b/api/pl.treksoft.kvision.form.time/-date-time-input/index.html
index 1cf6e712..bbc9ba27 100644
--- a/api/pl.treksoft.kvision.form.time/-date-time-input/index.html
+++ b/api/pl.treksoft.kvision.form.time/-date-time-input/index.html
@@ -563,6 +563,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form.upload/-upload-input/index.html b/api/pl.treksoft.kvision.form.upload/-upload-input/index.html
index 5bb10e4e..62a7296f 100644
--- a/api/pl.treksoft.kvision.form.upload/-upload-input/index.html
+++ b/api/pl.treksoft.kvision.form.upload/-upload-input/index.html
@@ -633,6 +633,13 @@ If not set the upload button action will default to form submission.</p>
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.form/-field-label/field-label.html b/api/pl.treksoft.kvision.form/-field-label/field-label.html
new file mode 100644
index 00000000..4bdcb3f7
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-field-label/field-label.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FieldLabel.fieldLabel - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FieldLabel</a>&nbsp;/&nbsp;<a href="./field-label.html">fieldLabel</a><br/>
+<br/>
+<h1>fieldLabel</h1>
+<a name="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">fieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">FieldLabel</span></a><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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FieldLabel</span></a></code>
+<p>DSL builder extension function.</p>
+<p>It takes the same parameters as the constructor of the built component.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-field-label/index.html b/api/pl.treksoft.kvision.form/-field-label/index.html
index b579bd1e..88717b91 100644
--- a/api/pl.treksoft.kvision.form/-field-label/index.html
+++ b/api/pl.treksoft.kvision.form/-field-label/index.html
@@ -125,6 +125,20 @@
</tr>
</tbody>
</table>
+<h3>Companion Object Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="field-label.html">fieldLabel</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">fieldLabel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/forId">forId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/content">content</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/rich">rich</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf("control-label")<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FieldLabel.Companion$fieldLabel(pl.treksoft.kvision.core.Container, kotlin.String, kotlin.String, kotlin.Boolean, kotlin.collections.Set((kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FieldLabel, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">FieldLabel</span></a><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>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">FieldLabel</span></a></code>
+<p>DSL builder extension function.</p>
+</td>
+</tr>
+</tbody>
+</table>
<h3>Extension Functions</h3>
<table>
<tbody>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html b/api/pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html
deleted file mode 100644
index 9afc0f15..00000000
--- a/api/pl.treksoft.kvision.form/-form-panel/get-data-with-file-content.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<HTML>
-<HEAD>
-<meta charset="UTF-8">
-<title>FormPanel.getDataWithFileContent - kvision</title>
-<link rel="stylesheet" href="../../../style.css">
-</HEAD>
-<BODY>
-<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./get-data-with-file-content.html">getDataWithFileContent</a><br/>
-<br/>
-<h1>getDataWithFileContent</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$getDataWithFileContent()"></a>
-<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
-<p>Returns current data model with file content read for all KFiles controls.</p>
-<p><strong>Return</strong><br/>
-data model</p>
-</BODY>
-</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/index.html b/api/pl.treksoft.kvision.form/-form-panel/index.html
index 6484c136..b024a683 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/index.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/index.html
@@ -182,15 +182,6 @@
</tr>
<tr>
<td>
-<p><a href="get-data-with-file-content.html">getDataWithFileContent</a></p>
-</td>
-<td>
-<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
-<p>Returns current data model with file content read for all KFiles controls.</p>
-</td>
-</tr>
-<tr>
-<td>
<p><a href="get-sn-attrs.html">getSnAttrs</a></p>
</td>
<td>
@@ -346,6 +337,15 @@
<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
</td>
</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html">getDataWithFileContent</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="./index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model with file content read for all KFiles controls.</p>
+</td>
+</tr>
</tbody>
</table>
</BODY>
diff --git a/api/pl.treksoft.kvision.form/-form/fields.html b/api/pl.treksoft.kvision.form/-form/fields.html
new file mode 100644
index 00000000..8a5d51b8
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/fields.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.fields - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">Form</a>&nbsp;/&nbsp;<a href="./fields.html">fields</a><br/>
+<br/>
+<h1>fields</h1>
+<a name="pl.treksoft.kvision.form.Form$fields"></a>
+<code><span class="keyword">val </span><span class="identifier">fields</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/get-data-with-file-content.html b/api/pl.treksoft.kvision.form/-form/get-data-with-file-content.html
deleted file mode 100644
index c3384ce8..00000000
--- a/api/pl.treksoft.kvision.form/-form/get-data-with-file-content.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<HTML>
-<HEAD>
-<meta charset="UTF-8">
-<title>Form.getDataWithFileContent - kvision</title>
-<link rel="stylesheet" href="../../../style.css">
-</HEAD>
-<BODY>
-<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">Form</a>&nbsp;/&nbsp;<a href="./get-data-with-file-content.html">getDataWithFileContent</a><br/>
-<br/>
-<h1>getDataWithFileContent</h1>
-<a name="pl.treksoft.kvision.form.Form$getDataWithFileContent()"></a>
-<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
-<p>Returns current data model with file content read for all KFiles controls.</p>
-<p><strong>Return</strong><br/>
-data model</p>
-</BODY>
-</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form/index.html b/api/pl.treksoft.kvision.form/-form/index.html
index 87d25335..1412e3d6 100644
--- a/api/pl.treksoft.kvision.form/-form/index.html
+++ b/api/pl.treksoft.kvision.form/-form/index.html
@@ -24,6 +24,25 @@
</tr>
</tbody>
</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="fields.html">fields</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">fields</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="model-factory.html">modelFactory</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">modelFactory</span><span class="symbol">: </span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a></code></td>
+</tr>
+</tbody>
+</table>
<h3>Functions</h3>
<table>
<tbody>
@@ -91,15 +110,6 @@
</tr>
<tr>
<td>
-<p><a href="get-data-with-file-content.html">getDataWithFileContent</a></p>
-</td>
-<td>
-<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#K"><span class="identifier">K</span></a></code>
-<p>Returns current data model with file content read for all KFiles controls.</p>
-</td>
-</tr>
-<tr>
-<td>
<p><a href="remove.html">remove</a></p>
</td>
<td>
@@ -160,6 +170,15 @@
<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
</td>
</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html">getDataWithFileContent</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="./index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/get-data-with-file-content.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model with file content read for all KFiles controls.</p>
+</td>
+</tr>
</tbody>
</table>
</BODY>
diff --git a/api/pl.treksoft.kvision.form/-form/model-factory.html b/api/pl.treksoft.kvision.form/-form/model-factory.html
new file mode 100644
index 00000000..db981f14
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form/model-factory.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Form.modelFactory - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">Form</a>&nbsp;/&nbsp;<a href="./model-factory.html">modelFactory</a><br/>
+<br/>
+<h1>modelFactory</h1>
+<a name="pl.treksoft.kvision.form.Form$modelFactory"></a>
+<code><span class="keyword">val </span><span class="identifier">modelFactory</span><span class="symbol">: </span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#K"><span class="identifier">K</span></a></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.html/-button/index.html b/api/pl.treksoft.kvision.html/-button/index.html
index b1ac213c..d47345df 100644
--- a/api/pl.treksoft.kvision.html/-button/index.html
+++ b/api/pl.treksoft.kvision.html/-button/index.html
@@ -443,6 +443,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.html/-canvas/index.html b/api/pl.treksoft.kvision.html/-canvas/index.html
index 4e54056b..f16b791a 100644
--- a/api/pl.treksoft.kvision.html/-canvas/index.html
+++ b/api/pl.treksoft.kvision.html/-canvas/index.html
@@ -389,6 +389,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.html/-iframe/index.html b/api/pl.treksoft.kvision.html/-iframe/index.html
index d6b39e47..851561b7 100644
--- a/api/pl.treksoft.kvision.html/-iframe/index.html
+++ b/api/pl.treksoft.kvision.html/-iframe/index.html
@@ -434,6 +434,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.html/-image/index.html b/api/pl.treksoft.kvision.html/-image/index.html
index 390a6a42..7315b32c 100644
--- a/api/pl.treksoft.kvision.html/-image/index.html
+++ b/api/pl.treksoft.kvision.html/-image/index.html
@@ -407,6 +407,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.modal/-close-icon/index.html b/api/pl.treksoft.kvision.modal/-close-icon/index.html
index 77f62a73..d66b766a 100644
--- a/api/pl.treksoft.kvision.modal/-close-icon/index.html
+++ b/api/pl.treksoft.kvision.modal/-close-icon/index.html
@@ -359,6 +359,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.panel/-simple-panel/index.html b/api/pl.treksoft.kvision.panel/-simple-panel/index.html
index a59bac2d..03309e94 100644
--- a/api/pl.treksoft.kvision.panel/-simple-panel/index.html
+++ b/api/pl.treksoft.kvision.panel/-simple-panel/index.html
@@ -429,6 +429,13 @@
</tr>
<tr>
<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></td>
+</tr>
+<tr>
+<td>
<p><a href="../../pl.treksoft.kvision.core/-widget/toggle-visible.html">toggleVisible</a></p>
</td>
<td>
diff --git a/api/pl.treksoft.kvision.redux/-dispatch.html b/api/pl.treksoft.kvision.redux/-dispatch.html
new file mode 100644
index 00000000..b795c4b0
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-dispatch.html
@@ -0,0 +1,13 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Dispatch - 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.redux</a>&nbsp;/&nbsp;<a href="./-dispatch.html">Dispatch</a><br/>
+<br/>
+<h1>Dispatch</h1>
+<code><span class="keyword">typealias </span><span class="identifier">Dispatch</span><span class="symbol">&lt;</span><span class="identifier">A</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><a href="-dispatch.html#A"><span class="identifier">A</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-get-state.html b/api/pl.treksoft.kvision.redux/-get-state.html
new file mode 100644
index 00000000..b9d37218
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-get-state.html
@@ -0,0 +1,13 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>GetState - 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.redux</a>&nbsp;/&nbsp;<a href="./-get-state.html">GetState</a><br/>
+<br/>
+<h1>GetState</h1>
+<code><span class="keyword">typealias </span><span class="identifier">GetState</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="-get-state.html#S"><span class="identifier">S</span></a></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/-init-.html b/api/pl.treksoft.kvision.redux/-redux-store/-init-.html
new file mode 100644
index 00000000..0c7d04f5
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/-init-.html
@@ -0,0 +1,30 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore.<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.redux</a>&nbsp;/&nbsp;<a href="index.html">ReduxStore</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.redux.ReduxStore$&lt;init&gt;(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))"></a>
+<code><span class="identifier">ReduxStore</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/stateSerializer">stateSerializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span></code>
+<p>Creates a Redux store with given reducer function and initial state.</p>
+<h3>Parameters</h3>
+<p><a name="S"></a>
+<code>S</code> - redux state type (@Serializable)</p>
+<p><a name="A"></a>
+<code>A</code> - redux action type</p>
+<p><a name="reducer"></a>
+<code>reducer</code> - a reducer function</p>
+<p><a name="state"></a>
+<code>state</code> - an initial state</p>
+<p><a name="stateSerializer"></a>
+<code>stateSerializer</code> - a serializer for the state type</p>
+<p><a name="middlewares"></a>
+<code>middlewares</code> - a list of optional Redux JS middlewares</p>
+<p><strong>Constructor</strong><br/>
+Creates a Redux store with given reducer function and initial state.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/dispatch.html b/api/pl.treksoft.kvision.redux/-redux-store/dispatch.html
new file mode 100644
index 00000000..864840fe
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/dispatch.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore.dispatch - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">ReduxStore</a>&nbsp;/&nbsp;<a href="./dispatch.html">dispatch</a><br/>
+<br/>
+<h1>dispatch</h1>
+<a name="pl.treksoft.kvision.redux.ReduxStore$dispatch(pl.treksoft.kvision.redux.ReduxStore.A)"></a>
+<code><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(pl.treksoft.kvision.redux.ReduxStore.A)/action">action</span><span class="symbol">:</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>Dispatches a synchronous action object.</p>
+<a name="pl.treksoft.kvision.redux.ReduxStore$dispatch(kotlin.Function2((kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.A, )), kotlin.Function0((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(kotlin.Function2((kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.A, )), kotlin.Function0((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Unit)))/action">action</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="../-dispatch.html"><span class="identifier">Dispatch</span></a><span class="symbol">&lt;</span><a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="../-get-state.html"><span class="identifier">GetState</span></a><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>Dispatches an asynchronous action function.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/get-state.html b/api/pl.treksoft.kvision.redux/-redux-store/get-state.html
new file mode 100644
index 00000000..bf7d9205
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/get-state.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore.getState - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">ReduxStore</a>&nbsp;/&nbsp;<a href="./get-state.html">getState</a><br/>
+<br/>
+<h1>getState</h1>
+<a name="pl.treksoft.kvision.redux.ReduxStore$getState()"></a>
+<code><span class="keyword">fun </span><span class="identifier">getState</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#S"><span class="identifier">S</span></a></code>
+<p>Returns the current state.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/index.html b/api/pl.treksoft.kvision.redux/-redux-store/index.html
new file mode 100644
index 00000000..0c8f9a80
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/index.html
@@ -0,0 +1,91 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore - 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.redux</a>&nbsp;/&nbsp;<a href="./index.html">ReduxStore</a><br/>
+<br/>
+<h1>ReduxStore</h1>
+<code><span class="keyword">class </span><span class="identifier">ReduxStore</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span></code>
+<p>A class implementing redux pattern backed by the original Redux JS library.
+It requires @Serializable state.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">ReduxStore</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/stateSerializer">stateSerializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$<init>(((pl.treksoft.kvision.redux.ReduxStore.S, pl.treksoft.kvision.redux.ReduxStore.A)), pl.treksoft.kvision.redux.ReduxStore.S, kotlinx.serialization.KSerializer((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span></code>
+<p>Creates a Redux store with given reducer function and initial state.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="state-serializer.html">stateSerializer</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">stateSerializer</span><span class="symbol">: </span><span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span></code>
+<p>a serializer for the state type</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="dispatch.html">dispatch</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(pl.treksoft.kvision.redux.ReduxStore.A)/action">action</span><span class="symbol">:</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>Dispatches a synchronous action object.</p>
+<code><span class="keyword">fun </span><span class="identifier">dispatch</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$dispatch(kotlin.Function2((kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.A, )), kotlin.Function0((pl.treksoft.kvision.redux.ReduxStore.S)), kotlin.Unit)))/action">action</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="../-dispatch.html"><span class="identifier">Dispatch</span></a><span class="symbol">&lt;</span><a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="../-get-state.html"><span class="identifier">GetState</span></a><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>Dispatches an asynchronous action function.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-state.html">getState</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getState</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html#S"><span class="identifier">S</span></a></code>
+<p>Returns the current state.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="subscribe.html">subscribe</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">subscribe</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$subscribe(kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.S, kotlin.Unit)))/listener">listener</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#S"><span class="identifier">S</span></a><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><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></code>
+<p>Subscribes a client for the change state notifications.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/state-serializer.html b/api/pl.treksoft.kvision.redux/-redux-store/state-serializer.html
new file mode 100644
index 00000000..ea96ec0c
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/state-serializer.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore.stateSerializer - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">ReduxStore</a>&nbsp;/&nbsp;<a href="./state-serializer.html">stateSerializer</a><br/>
+<br/>
+<h1>stateSerializer</h1>
+<a name="pl.treksoft.kvision.redux.ReduxStore$stateSerializer"></a>
+<code><span class="keyword">val </span><span class="identifier">stateSerializer</span><span class="symbol">: </span><span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">&gt;</span></code>
+<p>a serializer for the state type</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-redux-store/subscribe.html b/api/pl.treksoft.kvision.redux/-redux-store/subscribe.html
new file mode 100644
index 00000000..55376e06
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-redux-store/subscribe.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>ReduxStore.subscribe - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">ReduxStore</a>&nbsp;/&nbsp;<a href="./subscribe.html">subscribe</a><br/>
+<br/>
+<h1>subscribe</h1>
+<a name="pl.treksoft.kvision.redux.ReduxStore$subscribe(kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.S, kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="identifier">subscribe</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.ReduxStore$subscribe(kotlin.Function1((pl.treksoft.kvision.redux.ReduxStore.S, kotlin.Unit)))/listener">listener</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#S"><span class="identifier">S</span></a><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><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></code>
+<p>Subscribes a client for the change state notifications.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-state-binding/-init-.html b/api/pl.treksoft.kvision.redux/-state-binding/-init-.html
new file mode 100644
index 00000000..da648ab0
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-state-binding/-init-.html
@@ -0,0 +1,30 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StateBinding.<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.redux</a>&nbsp;/&nbsp;<a href="index.html">StateBinding</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.redux.StateBinding$&lt;init&gt;(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))"></a>
+<code><span class="identifier">StateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="../-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="index.html#S"><span class="identifier">S</span></a><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></code>
+<p>Creates StateBinding which binds the redux store with the given container.</p>
+<h3>Parameters</h3>
+<p><a name="S"></a>
+<code>S</code> - redux state type</p>
+<p><a name="A"></a>
+<code>A</code> - redux action type</p>
+<p><a name="CONT"></a>
+<code>CONT</code> - container type</p>
+<p><a name="store"></a>
+<code>store</code> - a redux store</p>
+<p><a name="container"></a>
+<code>container</code> - a container</p>
+<p><a name="factory"></a>
+<code>factory</code> - a function which re-creates the view based on the given state</p>
+<p><strong>Constructor</strong><br/>
+Creates StateBinding which binds the redux store with the given container.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-state-binding/index.html b/api/pl.treksoft.kvision.redux/-state-binding/index.html
new file mode 100644
index 00000000..625c5c0b
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-state-binding/index.html
@@ -0,0 +1,415 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StateBinding - 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.redux</a>&nbsp;/&nbsp;<a href="./index.html">StateBinding</a><br/>
+<br/>
+<h1>StateBinding</h1>
+<code><span class="keyword">class </span><span class="identifier">StateBinding</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>A class which binds the redux store with the given 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">StateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="../-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$<init>(pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.S, pl.treksoft.kvision.redux.StateBinding.A)), pl.treksoft.kvision.redux.StateBinding.CONT, kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="index.html#S"><span class="identifier">S</span></a><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></code>
+<p>Creates StateBinding which binds the redux store with the given container.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/draggable.html">draggable</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">draggable</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 current widget is draggable.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/event-target.html">eventTarget</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">eventTarget</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">?</span></code></td>
+</tr>
+<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/last-language.html">lastLanguage</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">lastLanguage</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></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/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">?</span></code>
+<p>Parent of the current component.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-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/surrounding-span.html">surroundingSpan</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">surroundingSpan</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="../../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="update.html">update</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">update</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$update(pl.treksoft.kvision.redux.StateBinding.S)/state">state</span><span class="symbol">:</span>&nbsp;<a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Updates view from the current state.</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/clear-drag-drop-data.html">clearDragDropData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">clearDragDropData</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>Clears D&D data for the current widget. It also makes it not draggable.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/dispatch-event.html">dispatchEvent</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">dispatchEvent</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$dispatchEvent(kotlin.String, org.w3c.dom.CustomEventInit)/type">type</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$dispatchEvent(kotlin.String, org.w3c.dom.CustomEventInit)/eventInitDict">eventInitDict</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-custom-event-init/index.html"><span class="identifier">CustomEventInit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span></code></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-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="../../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="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)/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-context-menu.html">setContextMenu</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setContextMenu</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setContextMenu(pl.treksoft.kvision.dropdown.ContextMenu)/contextMenu">contextMenu</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.dropdown/-context-menu/index.html"><span class="identifier">ContextMenu</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 context menu for the current widget.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/set-drag-drop-data.html">setDragDropData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setDragDropData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setDragDropData(kotlin.String, kotlin.String)/format">format</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$setDragDropData(kotlin.String, kotlin.String)/data">data</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Sets D&D data for the current widget. It also makes it draggable.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/set-drop-target.html">setDropTarget</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setDropTarget</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setDropTarget(kotlin.String, kotlin.Function1((org.w3c.dom.DragEvent, kotlin.Unit)))/format">format</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$setDropTarget(kotlin.String, kotlin.Function1((org.w3c.dom.DragEvent, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-drag-event/index.html"><span class="identifier">DragEvent</span></a><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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setDropTarget</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setDropTarget(kotlin.collections.Set((kotlin.String)), kotlin.Function1((org.w3c.dom.DragEvent, kotlin.Unit)))/formats">formats</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><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setDropTarget(kotlin.collections.Set((kotlin.String)), kotlin.Function1((org.w3c.dom.DragEvent, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-drag-event/index.html"><span class="identifier">DragEvent</span></a><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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Sets the current widget as a D&D drop target.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/set-drop-target-data.html">setDropTargetData</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setDropTargetData</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$setDropTargetData(kotlin.String, kotlin.Function1((kotlin.String, kotlin.Unit)))/format">format</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$setDropTargetData(kotlin.String, kotlin.Function1((kotlin.String, kotlin.Unit)))/callback">callback</span><span class="symbol">:</span>&nbsp;<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><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="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Sets the current widget as a D&D drop target with helper callback accepting String data.</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/single-render.html">singleRender</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">singleRender</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$singleRender(kotlin.Function0((pl.treksoft.kvision.core.Widget.singleRender.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.core/-widget/single-render.html#T"><span class="identifier">T</span></a></code></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>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.core/-widget/translate.html">translate</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">translate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.core.Widget$translate(kotlin.String)/text">text</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><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></td>
+</tr>
+</tbody>
+</table>
+<h3>Companion Object Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="state-binding.html">stateBinding</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="identifier">stateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="../-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="state-binding.html#S"><span class="identifier">S</span></a><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="./index.html"><span class="identifier">StateBinding</span></a><span class="symbol">&lt;</span><a href="state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
+<p>DSL builder extension function.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-state-binding/state-binding.html b/api/pl.treksoft.kvision.redux/-state-binding/state-binding.html
new file mode 100644
index 00000000..0cb98aa0
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-state-binding/state-binding.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StateBinding.stateBinding - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">StateBinding</a>&nbsp;/&nbsp;<a href="./state-binding.html">stateBinding</a><br/>
+<br/>
+<h1>stateBinding</h1>
+<a name="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="identifier">stateBinding</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/store">store</span><span class="symbol">:</span>&nbsp;<a href="../-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding.Companion$stateBinding(pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.ReduxStore((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.A)), kotlin.Function2((pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.CONT, pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding.S, kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="state-binding.html#S"><span class="identifier">S</span></a><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="index.html"><span class="identifier">StateBinding</span></a><span class="symbol">&lt;</span><a href="state-binding.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#A"><span class="identifier">A</span></a><span class="symbol">,</span>&nbsp;<a href="state-binding.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
+<p>DSL builder extension function.</p>
+<p>It takes the same parameters as the constructor of the built component.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/-state-binding/update.html b/api/pl.treksoft.kvision.redux/-state-binding/update.html
new file mode 100644
index 00000000..4b34b1ed
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/-state-binding/update.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>StateBinding.update - 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.redux</a>&nbsp;/&nbsp;<a href="index.html">StateBinding</a>&nbsp;/&nbsp;<a href="./update.html">update</a><br/>
+<br/>
+<h1>update</h1>
+<a name="pl.treksoft.kvision.redux.StateBinding$update(pl.treksoft.kvision.redux.StateBinding.S)"></a>
+<code><span class="keyword">fun </span><span class="identifier">update</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux.StateBinding$update(pl.treksoft.kvision.redux.StateBinding.S)/state">state</span><span class="symbol">:</span>&nbsp;<a href="index.html#S"><span class="identifier">S</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Updates view from the current state.</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/create-redux-store.html b/api/pl.treksoft.kvision.redux/create-redux-store.html
new file mode 100644
index 00000000..cf75fdaf
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/create-redux-store.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>createReduxStore - 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.redux</a>&nbsp;/&nbsp;<a href="./create-redux-store.html">createReduxStore</a><br/>
+<br/>
+<h1>createReduxStore</h1>
+<a name="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))"></a>
+<code><span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span> <span class="identifier">createReduxStore</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span></code>
+<p>An inline helper function for creating Redux store.</p>
+<h3>Parameters</h3>
+<p><a name="reducer"></a>
+<code>reducer</code> - a reducer function</p>
+<p><a name="state"></a>
+<code>state</code> - an initial state</p>
+<p><a name="middlewares"></a>
+<code>middlewares</code> - a list of optional Redux JS middlewares</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.redux/index.html b/api/pl.treksoft.kvision.redux/index.html
new file mode 100644
index 00000000..2aebb7bf
--- /dev/null
+++ b/api/pl.treksoft.kvision.redux/index.html
@@ -0,0 +1,69 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.redux - 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.redux</a><br/>
+<br/>
+<h2>Package pl.treksoft.kvision.redux</h2>
+<h3>Types</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-redux-store/index.html">ReduxStore</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">ReduxStore</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span></code>
+<p>A class implementing redux pattern backed by the original Redux JS library.
+It requires @Serializable state.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-state-binding/index.html">StateBinding</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">StateBinding</span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a></code>
+<p>A class which binds the redux store with the given container.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Type Aliases</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-dispatch.html">Dispatch</a></p>
+</td>
+<td>
+<code><span class="keyword">typealias </span><span class="identifier">Dispatch</span><span class="symbol">&lt;</span><span class="identifier">A</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><a href="-dispatch.html#A"><span class="identifier">A</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-get-state.html">GetState</a></p>
+</td>
+<td>
+<code><span class="keyword">typealias </span><span class="identifier">GetState</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="-get-state.html#S"><span class="identifier">S</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="create-redux-store.html">createReduxStore</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">S</span>&nbsp;<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="identifier">A</span><span class="symbol">&gt;</span> <span class="identifier">createReduxStore</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/reducer">reducer</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/initialState">initialState</span><span class="symbol">:</span>&nbsp;<a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">, </span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.redux$createReduxStore(((pl.treksoft.kvision.redux.createReduxStore.S, pl.treksoft.kvision.redux.createReduxStore.A)), pl.treksoft.kvision.redux.createReduxStore.S, kotlin.Array((kotlin.Any)))/middlewares">middlewares</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="-redux-store/index.html"><span class="identifier">ReduxStore</span></a><span class="symbol">&lt;</span><a href="create-redux-store.html#S"><span class="identifier">S</span></a><span class="symbol">,</span>&nbsp;<a href="create-redux-store.html#A"><span class="identifier">A</span></a><span class="symbol">&gt;</span></code>
+<p>An inline helper function for creating Redux store.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.utils/get-data-with-file-content.html b/api/pl.treksoft.kvision.utils/get-data-with-file-content.html
new file mode 100644
index 00000000..519a27c8
--- /dev/null
+++ b/api/pl.treksoft.kvision.utils/get-data-with-file-content.html
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>getDataWithFileContent - 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.utils</a>&nbsp;/&nbsp;<a href="./get-data-with-file-content.html">getDataWithFileContent</a><br/>
+<br/>
+<h1>getDataWithFileContent</h1>
+<a name="pl.treksoft.kvision.utils$getDataWithFileContent(pl.treksoft.kvision.form.Form((pl.treksoft.kvision.utils.getDataWithFileContent.K)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="../pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a></code><br/>
+<a name="pl.treksoft.kvision.utils$getDataWithFileContent(pl.treksoft.kvision.form.FormPanel((pl.treksoft.kvision.utils.getDataWithFileContent.K)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="../pl.treksoft.kvision.form/-form-panel/index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model with file content read for all KFiles controls.</p>
+<p><strong>Return</strong><br/>
+data model</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.utils/index.html b/api/pl.treksoft.kvision.utils/index.html
index 91fe813b..dace06e5 100644
--- a/api/pl.treksoft.kvision.utils/index.html
+++ b/api/pl.treksoft.kvision.utils/index.html
@@ -127,6 +127,16 @@
<tbody>
<tr>
<td>
+<p><a href="get-data-with-file-content.html">getDataWithFileContent</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="../pl.treksoft.kvision.form/-form/index.html"><span class="identifier">Form</span></a><span class="symbol">&lt;</span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">K</span>&nbsp;<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">&gt;</span> <a href="../pl.treksoft.kvision.form/-form-panel/index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getDataWithFileContent</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="get-data-with-file-content.html#K"><span class="identifier">K</span></a></code>
+<p>Returns current data model with file content read for all KFiles controls.</p>
+</td>
+</tr>
+<tr>
+<td>
<p><a href="is-i-e11.html">isIE11</a></p>
</td>
<td>