aboutsummaryrefslogtreecommitdiff
path: root/api/pl.treksoft.kvision.form/-form-panel
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2020-02-09 14:23:52 +0100
committerRobert Jaros <rjaros@finn.pl>2020-02-09 14:23:52 +0100
commit6ce402754e01940fc641f8814eae03599a622b1c (patch)
tree5c00c28563f6f1cf35175de6a8f3be5db0ef3075 /api/pl.treksoft.kvision.form/-form-panel
parenta817e908e6df82b9b6d69758635c852c7a5f628e (diff)
downloadkvision-6ce402754e01940fc641f8814eae03599a622b1c.tar.gz
kvision-6ce402754e01940fc641f8814eae03599a622b1c.tar.bz2
kvision-6ce402754e01940fc641f8814eae03599a622b1c.zip
API documentation for KVision 2.10.0
Diffstat (limited to 'api/pl.treksoft.kvision.form/-form-panel')
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/-init-.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add-custom.html32
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add-internal.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/add.html30
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/create.html4
-rw-r--r--api/pl.treksoft.kvision.form/-form-panel/index.html98
6 files changed, 143 insertions, 29 deletions
diff --git a/api/pl.treksoft.kvision.form/-form-panel/-init-.html b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
index 97ad93ee..3c5645e2 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/-init-.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/-init-.html
@@ -8,8 +8,8 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$&lt;init&gt;(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))"></a>
-<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/action">action</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/condensed">condensed</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/horizRatio">horizRatio</span><span class="symbol">:</span>&nbsp;<a href="../-form-horizontal-ratio/index.html"><span class="identifier">FormHorizontalRatio</span></a>&nbsp;<span class="symbol">=</span>&nbsp;FormHorizontalRatio.RATIO_2<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)))/serializer">serializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$&lt;init&gt;(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))"></a>
+<code><span class="identifier">FormPanel</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/method">method</span><span class="symbol">:</span>&nbsp;<a href="../-form-method/index.html"><span class="identifier">FormMethod</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/action">action</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/enctype">enctype</span><span class="symbol">:</span>&nbsp;<a href="../-form-enctype/index.html"><span class="identifier">FormEnctype</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/type">type</span><span class="symbol">:</span>&nbsp;<a href="../-form-type/index.html"><span class="identifier">FormType</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/condensed">condensed</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/horizRatio">horizRatio</span><span class="symbol">:</span>&nbsp;<a href="../-form-horizontal-ratio/index.html"><span class="identifier">FormHorizontalRatio</span></a>&nbsp;<span class="symbol">=</span>&nbsp;FormHorizontalRatio.RATIO_2<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/classes">classes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html"><span class="identifier">Set</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;setOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/serializer">serializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$<init>(pl.treksoft.kvision.form.FormMethod, kotlin.String, pl.treksoft.kvision.form.FormEnctype, pl.treksoft.kvision.form.FormType, kotlin.Boolean, pl.treksoft.kvision.form.FormHorizontalRatio, kotlin.collections.Set((kotlin.String)), kotlinx.serialization.KSerializer((pl.treksoft.kvision.form.FormPanel.K)), kotlin.collections.Map((kotlin.reflect.KClass((kotlin.Any)), kotlinx.serialization.KSerializer((kotlin.Any)))))/customSerializers">customSerializers</span><span class="symbol">:</span>&nbsp;<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.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">KSerializer</span><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
<h3>Parameters</h3>
<p><a name="K"></a>
<code>K</code> - model class type</p>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/add-custom.html b/api/pl.treksoft.kvision.form/-form-panel/add-custom.html
new file mode 100644
index 00000000..d488e3da
--- /dev/null
+++ b/api/pl.treksoft.kvision.form/-form-panel/add-custom.html
@@ -0,0 +1,32 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>FormPanel.addCustom - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./add-custom.html">addCustom</a><br/>
+<br/>
+<h1>addCustom</h1>
+<a name="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addCustom</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-custom.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/legend">legend</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-custom.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><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addCustom(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addCustom.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-custom.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><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<p>Adds a string control to the form panel bound to custom field type.</p>
+<h3>Parameters</h3>
+<p><a name="key"></a>
+<code>key</code> - key identifier of the control</p>
+<p><a name="control"></a>
+<code>control</code> - the string form control</p>
+<p><a name="required"></a>
+<code>required</code> - determines if the control is required</p>
+<p><a name="requiredMessage"></a>
+<code>requiredMessage</code> - optional required validation message</p>
+<p><a name="legend"></a>
+<code>legend</code> - put this control inside a fieldset with given legend</p>
+<p><a name="validatorMessage"></a>
+<code>validatorMessage</code> - optional function returning validation message</p>
+<p><a name="validator"></a>
+<code>validator</code> - optional validation function</p>
+<p><strong>Return</strong><br/>
+current form panel</p>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/add-internal.html b/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
index 63e84fa2..7c25cc8a 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/add-internal.html
@@ -8,7 +8,7 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./add-internal.html">addInternal</a><br/>
<br/>
<h1>addInternal</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">protected</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-form-control/index.html"><span class="identifier">FormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">addInternal</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/legend">legend</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$addInternal(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.Any)), pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.addInternal.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add-internal.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.form/-form-panel/add.html b/api/pl.treksoft.kvision.form/-form-panel/add.html
index cac9e4ea..37123c44 100644
--- a/api/pl.treksoft.kvision.form/-form-panel/add.html
+++ b/api/pl.treksoft.kvision.form/-form-panel/add.html
@@ -8,8 +8,8 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.form</a>&nbsp;/&nbsp;<a href="index.html">FormPanel</a>&nbsp;/&nbsp;<a href="./add.html">add</a><br/>
<br/>
<h1>add</h1>
-<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
-<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validatorMessage">validatorMessage</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/validator">validator</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">FormPanel</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-string-form-control/index.html"><span class="identifier">StringFormControl</span></a><span class="symbol">&gt;</span> <span class="identifier">add</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/key">key</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/index.html"><span class="identifier">KProperty1</span></a><span class="symbol">&lt;</span><a href="index.html#K"><span class="identifier">K</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/control">control</span><span class="symbol">:</span>&nbsp;<a href="add.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/required">required</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/requiredMessage">requiredMessage</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.form.FormPanel$add(kotlin.reflect.KProperty1((pl.treksoft.kvision.form.FormPanel.K, kotlin.String)), pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean, kotlin.String, kotlin.String, kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.String)), kotlin.Function1((pl.treksoft.kvision.form.FormPanel.add.C, kotlin.Boolean)))/legend">legend</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identif