You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2017/10/25 13:19:05 UTC

[myfaces-tobago] 01/02: TOBAGO-1585: Adapt SplitLayout to Tobago 4

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit f6fd597dfe5e169048cf8aed3496f22aff1340da
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Oct 25 15:13:34 2017 +0200

    TOBAGO-1585: Adapt SplitLayout to Tobago 4
---
 .../internal/component/AbstractUIFlexLayout.java   |   1 +
 .../internal/component/AbstractUISplitLayout.java  |  43 ++++++
 .../renderkit/renderer/SplitLayoutRenderer.java    | 124 +++++++++++++++
 .../component}/SplitLayoutTagDeclaration.java      |  30 +++-
 .../myfaces/tobago/renderkit/css/TobagoClass.java  |   2 +
 tobago-core/src/main/resources/scss/_tobago.scss   |  22 +++
 .../tobago/example/demo/SplitLayoutController.java |  65 ++++++++
 .../16-layout/60-split/split-layout.xhtml          |  78 ++++++++++
 .../internal/component/AbstractUISplitLayout.java  | 146 ------------------
 .../standard/tag/SplitLayoutRenderer.java          | 170 ---------------------
 .../sandbox/tobago-bootstrap/3.1.0/css/tobago.css  |  14 --
 .../tobago-theme-charlotteville/rebuild-theme.log  |  98 ++++++------
 .../tobago-bootstrap/_version/css/bootstrap.css    |  27 +++-
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |   2 +-
 .../tobago-theme-richmond/rebuild-theme.log        | 108 +++++++------
 .../tobago-bootstrap/_version/css/bootstrap.css    |  27 +++-
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |   2 +-
 .../tobago-theme-scarborough/rebuild-theme.log     | 112 +++++++-------
 .../tobago-bootstrap/_version/css/bootstrap.css    |  27 +++-
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |   2 +-
 .../tobago-theme-speyside/rebuild-theme.log        | 104 +++++++------
 .../tobago-bootstrap/_version/css/bootstrap.css    |  27 +++-
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |   2 +-
 .../tobago-theme-standard/rebuild-theme.log        | 102 +++++++------
 .../tobago-bootstrap/_version/css/bootstrap.css    |  27 +++-
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |   2 +-
 .../tobago-bootstrap/_version/js/tobago-layout.js  |  60 ++++++++
 42 files changed, 840 insertions(+), 614 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIFlexLayout.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIFlexLayout.java
index f883038..45a4f46 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIFlexLayout.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIFlexLayout.java
@@ -91,6 +91,7 @@ public abstract class AbstractUIFlexLayout extends AbstractUILayoutBase implemen
               style.setFlexGrow(factor);
               style.setFlexShrink(0);
               style.setFlexBasis(Measure.ZERO);
+// todo             style.setFlexBasis("auto");
               ((UIComponent) visual).getChildren().add(style);
             }
           }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java
new file mode 100644
index 0000000..9f943e9
--- /dev/null
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.component;
+
+import org.apache.myfaces.tobago.apt.annotation.Preliminary;
+import org.apache.myfaces.tobago.internal.taglib.component.SplitLayoutTagDeclaration;
+
+import javax.faces.event.ListenerFor;
+import javax.faces.event.PostAddToViewEvent;
+
+/**
+ * <p>
+ * WARNING: This component is preliminary and may be changed without a major release.
+ * </p>
+ *
+ * {@link SplitLayoutTagDeclaration}
+ */
+@Preliminary
+@ListenerFor(systemEventClass = PostAddToViewEvent.class)
+public abstract class AbstractUISplitLayout extends AbstractUIFlexLayout {
+
+  public static final String COMPONENT_FAMILY = "org.apache.myfaces.tobago.SplitLayout";
+
+  // TODO
+  private String submittedLayout;
+}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SplitLayoutRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SplitLayoutRenderer.java
new file mode 100644
index 0000000..572df7b
--- /dev/null
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SplitLayoutRenderer.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.renderkit.renderer;
+
+import org.apache.myfaces.tobago.apt.annotation.Preliminary;
+import org.apache.myfaces.tobago.internal.component.AbstractUISplitLayout;
+import org.apache.myfaces.tobago.internal.layout.LayoutUtils;
+import org.apache.myfaces.tobago.renderkit.RendererBase;
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
+import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
+import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
+import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * <p>
+ * WARNING: This component is preliminary and may be changed without a major release.
+ * </p>
+ */
+@Preliminary
+public class SplitLayoutRenderer extends RendererBase {
+
+  private static final Logger LOG = LoggerFactory.getLogger(SplitLayoutRenderer.class);
+
+  @Override
+  public void decode(final FacesContext facesContext, final UIComponent component) {
+    final String sourceId = facesContext.getExternalContext().getRequestParameterMap().get("javax.faces.source");
+    final String clientId = component.getClientId();
+    if (clientId.equals(sourceId)) {
+      // only decode and update layout at resize request
+//      final Map<String, String> parameterMap = facesContext.getExternalContext().getRequestParameterMap();
+//      final String position = parameterMap.get(clientId + POSITION_ID_POSTFIX);
+      LOG.warn("todo update layout");
+      //      ((AbstractUISplitLayout) component).updateLayout(Integer.parseInt(position));
+    }
+  }
+
+  @Override
+  public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException {
+
+    final AbstractUISplitLayout splitLayout = (AbstractUISplitLayout) component;
+    final TobagoResponseWriter writer = getResponseWriter(facesContext);
+
+    writer.startElement(HtmlElements.DIV);
+    writer.writeIdAttribute(splitLayout.getClientId(facesContext));
+    writer.writeClassAttribute(
+        BootstrapClass.D_FLEX, // tbd: SPLIT_LAYOUT
+        splitLayout.isHorizontal() ? BootstrapClass.FLEX_ROW : BootstrapClass.FLEX_COLUMN);
+  }
+
+  @Override
+  public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
+    final TobagoResponseWriter writer = getResponseWriter(facesContext);
+    writer.endElement(HtmlElements.DIV);
+  }
+
+  @Override
+  public boolean getRendersChildren() {
+    return true;
+  }
+
+  @Override
+  public void encodeChildren(final FacesContext facesContext, final UIComponent component) throws IOException {
+    final TobagoResponseWriter writer = getResponseWriter(facesContext);
+    final AbstractUISplitLayout splitLayout = (AbstractUISplitLayout) component;
+    final List<UIComponent> components = LayoutUtils.findLayoutChildren(splitLayout);
+    if (components.size() != 2) {
+      LOG.warn("Illegal component count in splitLayout: {}", components.size());
+    }
+
+    components.get(0).encodeAll(facesContext);
+
+    writer.startElement(HtmlElements.DIV);
+    writer.writeClassAttribute(
+        splitLayout.isHorizontal() ? TobagoClass.SPLIT_LAYOUT__HORIZONTAL : TobagoClass.SPLIT_LAYOUT__VERTICAL);
+    writer.endElement(HtmlElements.DIV);
+
+    components.get(1).encodeAll(facesContext);
+
+    if (components.get(0).isRendered() && components.get(1).isRendered()) {
+      // only when both components are rendered
+      encodeHandle(facesContext, splitLayout);
+    }
+  }
+
+  private void encodeHandle(final FacesContext facesContext, final AbstractUISplitLayout layout) throws IOException {
+
+    final TobagoResponseWriter writer = getResponseWriter(facesContext);
+    writer.startElement(HtmlElements.SPAN);
+/*
+    writer.startElement(HtmlElements.INPUT);
+    final String id = layout.getClientId(facesContext);
+    writer.writeIdAttribute(id + POSITION_ID_POSTFIX);
+    writer.writeNameAttribute(id + POSITION_ID_POSTFIX);
+    writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN);
+//    writer.writeAttribute(HtmlAttributes.value, Integer.toString(position), false);
+    writer.endElement(HtmlElements.INPUT);
+*/
+    writer.endElement(HtmlElements.SPAN);
+  }
+}
diff --git a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/taglib/sandbox/SplitLayoutTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SplitLayoutTagDeclaration.java
similarity index 76%
rename from tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/taglib/sandbox/SplitLayoutTagDeclaration.java
rename to tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SplitLayoutTagDeclaration.java
index 7d99b96..bdff91d 100644
--- a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/taglib/sandbox/SplitLayoutTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SplitLayoutTagDeclaration.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.myfaces.tobago.internal.taglib.sandbox;
+package org.apache.myfaces.tobago.internal.taglib.component;
 
 import org.apache.myfaces.tobago.apt.annotation.Preliminary;
 import org.apache.myfaces.tobago.apt.annotation.Tag;
@@ -53,27 +53,53 @@ public interface SplitLayoutTagDeclaration
 
   /**
    * This value defines the layout constraints for the layout.
-   * It is two layout tokens separated by a semicolon. See GridLayout.
+   * It is two layout tokens separated by a semicolon.
    * Example: '2*;*'.
    */
+/*
   @TagAttribute
   @UIComponentTagAttribute(defaultValue = "1*;1*")
   void setLayout(String rows);
+*/
+
+  /**
+   * This value defines the layout constraints for column layout.
+   * It is a semicolon separated list of layout tokens '&lt;n&gt;*', '&lt;measure&gt;' or the keyword 'auto'.
+   * Where &lt;n&gt; is a positive integer or empty and &lt;measure&gt; is a valid CSS length.
+   * Example: '2*;*;100px;3rem;auto'.
+   */
+  @TagAttribute
+  @UIComponentTagAttribute
+  void setColumns(String columns);
+
+  /**
+   * This value defines the layout constraints for row layout.
+   * It is a semicolon separated list of layout tokens '&lt;n&gt;*', '&lt;measure&gt;' or the keyword 'auto'.
+   * Where &lt;n&gt; is a positive integer or empty and &lt;measure&gt; is a valid CSS length.
+   * Example: '2*;*;100px;3rem;auto'.
+   */
+  @TagAttribute
+  @UIComponentTagAttribute
+  void setRows(String rows);
 
   /**
    * This value defines the orientation of the split layout.
    * Possible values are {@link Orientation#horizontal} and {@link Orientation#vertical}.
    */
+/*
   @TagAttribute(required = true)
   @UIComponentTagAttribute(
       type = "org.apache.myfaces.tobago.layout.Orientation",
       allowedValues = {Orientation.HORIZONTAL, Orientation.VERTICAL})
   void setOrientation(String orientation);
+*/
 
   /**
    * This attribute advises the layout manager, to not use space that comes from non rendered components.
    */
+/* tbd
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean")
   void setRigid(String rigid);
+*/
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index d06a5f7..4b12e36 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -206,6 +206,8 @@ public enum TobagoClass implements CssItem {
   SHEET__PAGING_INPUT("tobago-sheet-pagingInput"),
   SHEET__PAGING_OUTPUT("tobago-sheet-pagingOutput"),
   SHEET__ROW("tobago-sheet-row"),
+  SPLIT_LAYOUT__HORIZONTAL("tobago-splitLayout-horizontal"),
+  SPLIT_LAYOUT__VERTICAL("tobago-splitLayout-vertical"),
   SUGGEST("tobago-suggest"),
   TAB("tobago-tab"),
   TAB__CONTENT("tobago-tab-content"),
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 3d189d9..803e8e4 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -1043,6 +1043,28 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 .tobago-sheet-pagingOutput {
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000; /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000; /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 
 .tobago-suggest {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SplitLayoutController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SplitLayoutController.java
new file mode 100644
index 0000000..c565ca5
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SplitLayoutController.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.example.demo;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@SessionScoped
+@Named
+public class SplitLayoutController implements Serializable {
+
+  private String horizontalLayout = "1*;1*";
+
+  private String verticalLayout = "1*;1*";
+
+  public String getHorizontalLayout() {
+    return horizontalLayout;
+  }
+
+  public void setHorizontalLayout(String horizontalLayout) {
+    this.horizontalLayout = horizontalLayout;
+  }
+
+  public String getVerticalLayout() {
+    return verticalLayout;
+  }
+
+  public void setVerticalLayout(String verticalLayout) {
+    this.verticalLayout = verticalLayout;
+  }
+
+  public String getVerticalLayoutFirstToken() {
+    return verticalLayout.split(";")[0];
+  }
+
+  public String getVerticalLayoutSecondToken() {
+    return verticalLayout.split(";")[1];
+  }
+
+  public Object getHorizontalLayoutFirstToken() {
+    return horizontalLayout.split(";")[0];
+  }
+
+  public Object getHorizontalLayoutSecondToken() {
+    return horizontalLayout.split(";")[1];
+  }
+}
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/60-split/split-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/60-split/split-layout.xhtml
new file mode 100644
index 0000000..df93c74
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/60-split/split-layout.xhtml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<ui:composition template="/plain.xhtml"
+                xmlns:f="http://java.sun.com/jsf/core"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:tc="http://myfaces.apache.org/tobago/component">
+
+  <ui:param name="title" value="SplitLayout Example"/>
+
+  <tc:style file="#{request.contextPath}/style/demo.css"/>
+  <tc:script file="#{request.contextPath}/script/demo.js"/>
+
+  <tc:splitLayout columns="1*;1*">
+    <tc:panel>
+     <p>Laut dem Debian-Projekt kann der Fehler "ein unvorhersehbares Systemverhalten verursachen", wie etwa Fehlverhalten von Anwendung und des Systems, Datenveränderungen oder gar Datenverlust. Einige Nutzer von Debian Stable alias Stretch seien von dem Fehler betroffen, weshalb nun die Warnung veröffentlicht worden ist.</p>
+    </tc:panel>
+    <tc:textarea value="Text" labelLayout="none"/>
+    <!--<tc:textarea value="Text" labelLayout="none"/>-->
+  </tc:splitLayout>
+
+  <tc:splitLayout columns="1*;4*;1*">
+    <tc:button label="A"/>
+    <tc:button label="B"/>
+    <!--<tc:button label="C"/>-->
+  </tc:splitLayout>
+
+  <tc:flexLayout rows="auto;*">
+
+    <p>
+    The SplitLayout implements a two component layout with a divider between
+    the components to adjust the space between the components.
+    </p>
+    <p>
+    Drag the divder between the boxes to see the effect</p>
+
+    <tc:splitLayout columns="#{splitLayoutController.verticalLayout}">
+
+      <tc:splitLayout rows="#{splitLayoutController.horizontalLayout}">
+        <tc:box label="Top left box">
+          <tc:out
+              value="Current vertical layout first value: #{splitLayoutController.verticalLayoutFirstToken}"/>
+          <tc:out
+              value="Current horizontal layout first value: #{splitLayoutController.horizontalLayoutFirstToken}"/>
+        </tc:box>
+        <tc:box label="Top right box">
+          <tc:out
+              value="Current vertical layout first value: #{splitLayoutController.verticalLayoutFirstToken}"/>
+          <tc:out
+              value="Current horizontal layout second value: #{splitLayoutController.horizontalLayoutSecondToken}"/>
+        </tc:box>
+      </tc:splitLayout>
+      <tc:box label="Bottom box">
+        <tc:out
+            value="Current vertical layout second value: #{splitLayoutController.verticalLayoutSecondToken}"/>
+      </tc:box>
+
+    </tc:splitLayout>
+
+  </tc:flexLayout>
+
+</ui:composition>
diff --git a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java b/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java
deleted file mode 100644
index e71b88a..0000000
--- a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISplitLayout.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.myfaces.tobago.internal.component;
-
-import org.apache.myfaces.tobago.apt.annotation.Preliminary;
-import org.apache.myfaces.tobago.component.Visual;
-import org.apache.myfaces.tobago.internal.layout.LayoutUtils;
-import org.apache.myfaces.tobago.layout.Measure;
-import org.apache.myfaces.tobago.layout.Orientation;
-
-import javax.el.ELContext;
-import javax.el.ValueExpression;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import java.util.List;
-
-/**
- * <p>
- * WARNING: This component is preliminary and may be changed without a major release.
- * </p>
- *
- * {@link org.apache.myfaces.tobago.internal.taglib.sandbox.SplitLayoutTagDeclaration}
- */
-@Preliminary
-public abstract class AbstractUISplitLayout extends AbstractUIGridLayout {
-
-  private String submittedLayout;
-
-  public void updateLayout(final int position) {
-    final List<UIComponent> components = LayoutUtils.findLayoutChildren(getParent());
-    final Visual firstComponent = (Visual) components.get(0);
-    final Visual secondComponent = (Visual) components.get(1);
-    final int oldPosition;
-
-    final int currentSize1;
-    final int currentSize2;
-/* XXX to be reimplemented: not using GridLayout, it might be better using flex?!
-    if (getOrientation() == Orientation.horizontal) {
-      oldPosition = secondComponent.getLeft().getPixel() - 5;
-      currentSize1 = firstComponent.getCurrentWidth().getPixel();
-      currentSize2 = secondComponent.getCurrentWidth().getPixel();
-    } else {
-      oldPosition = secondComponent.getTop().getPixel() - 5;
-      currentSize1 = firstComponent.getCurrentHeight().getPixel();
-      currentSize2 = secondComponent.getCurrentHeight().getPixel();
-    }
-
-    final int offset = position - oldPosition;
-    final int newSize1 = currentSize1 + offset;
-    final int newSize2 = currentSize2 - offset;
-
-    final int ggt = gcd(newSize1, newSize2);
-    submittedLayout = Integer.toString(newSize1 / ggt) + "*;" + Integer.toString(newSize2 / ggt) + "*";
-*/
-  }
-
-  // TODO: MathUtils
-  public static int gcd(final int valueA, final int valueB) {
-    int a = valueA;
-    int b = valueB;
-    if (a < 0) {
-      a = -a;
-    }
-    if (b < 0) {
-      b = -b;
-    }
-    int t;
-    while (b != 0) {
-      t = a % b;
-      a = b;
-      b = t;
-    }
-    return a;
-  }
-
-  @Override
-  public void processUpdates(final FacesContext facesContext) {
-    updateModel(facesContext);
-    super.processUpdates(facesContext);
-  }
-
-  private void updateModel(final FacesContext facesContext) {
-    if (submittedLayout != null) {
-      final ValueExpression expression = getValueExpression("layout");
-      if (expression != null) {
-        final ELContext elContext = facesContext.getELContext();
-        expression.setValue(elContext, submittedLayout);
-        submittedLayout = null;
-      }
-    }
-  }
-
-@Override
-  public void setColumns(final String columns) {
-  }
-
-  @Override
-  public String getColumns() {
-    return getOrientation() == Orientation.vertical ? "1*" : getLayout2();
-  }
-
-//  private String getLayout2() {
-//    return getLayout().replace(";", ";5px;");
-//  }
-
-  @Override
-  public void setRows(final String rows) {
-  }
-
-  @Override
-  public String getRows() {
-    return getOrientation() == Orientation.horizontal ? "1*" : getLayout2();
-  }
-
-  private String getLayout2() {
-    return submittedLayout != null ? submittedLayout : getLayout();
-  }
-
-  public abstract String getLayout();
-
-  public abstract Orientation getOrientation();
-
-  public abstract Measure getRowSpacing();
-
-  public abstract Measure getColumnSpacing();
-
-  @Override
-  public abstract boolean isRigid();
-}
diff --git a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SplitLayoutRenderer.java b/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SplitLayoutRenderer.java
deleted file mode 100644
index 31de6f4..0000000
--- a/tobago-extension/tobago-sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SplitLayoutRenderer.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag;
-
-import org.apache.myfaces.tobago.apt.annotation.Preliminary;
-import org.apache.myfaces.tobago.internal.component.AbstractUISplitLayout;
-import org.apache.myfaces.tobago.internal.layout.LayoutUtils;
-import org.apache.myfaces.tobago.internal.renderkit.renderer.GridLayoutRenderer;
-import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
-import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
-import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
-import org.apache.myfaces.tobago.renderkit.html.HtmlInputTypes;
-import org.apache.myfaces.tobago.renderkit.html.MarkupLanguageAttributes;
-import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- * WARNING: This component is preliminary and may be changed without a major release.
- * </p>
- */
-@Preliminary
-public class SplitLayoutRenderer extends GridLayoutRenderer {
-
-  private static final Logger LOG = LoggerFactory.getLogger(SplitLayoutRenderer.class);
-  private static final String POSITION_ID_POSTFIX = "_spLP";
-
-  // todo: put as enum to DataAttributes, when moved from sandbox to core
-  private static final MarkupLanguageAttributes SPLIT_LAYOUT = DataAttributes.dynamic("tobago-split-layout");
-
-  // todo: put as enum to DataAttributes, when moved from sandbox to core
-  private static final MarkupLanguageAttributes SPLIT_LAYOUT_CONTAINMENT
-      = DataAttributes.dynamic("data-tobago-split-layout-containment");
-
-  @Override
-  public void decode(final FacesContext facesContext, final UIComponent component) {
-    final String sourceId = facesContext.getExternalContext().getRequestParameterMap().get("javax.faces.source");
-    final String clientId = component.getClientId();
-    if (clientId.equals(sourceId)) {
-      // only decode and update layout at resize request
-      final Map<String, String> parameterMap = facesContext.getExternalContext().getRequestParameterMap();
-      final String position = parameterMap.get(clientId + POSITION_ID_POSTFIX);
-      ((AbstractUISplitLayout) component).updateLayout(Integer.parseInt(position));
-    }
-  }
-
-  @Override
-  public void encodeChildren(final FacesContext facesContext, final UIComponent component) throws IOException {
-    final UIComponent parent = component.getParent();
-    if (parent.isRendered()) {
-      final List<UIComponent> components = LayoutUtils.findLayoutChildren(parent);
-      if (components.size() != 2) {
-        LOG.warn("Illegal component count in splitLayout: {}", components.size());
-      }
-      components.get(0).encodeAll(facesContext);
-      components.get(1).encodeAll(facesContext);
-      if (components.get(0).isRendered() && components.get(1).isRendered()) {
-        // only when both components are rendered
-        encodeHandle(facesContext, (AbstractUISplitLayout) component);
-      }
-    }
-  }
-
-  protected void encodeHandle(final FacesContext facesContext, final AbstractUISplitLayout layout) throws IOException {
-    final String id = layout.getClientId(facesContext);
-
-    final TobagoResponseWriter writer = getResponseWriter(facesContext);
-    writer.startElement(HtmlElements.SPAN);
-    writer.writeIdAttribute(id);
-    writer.writeAttribute(SPLIT_LAYOUT, layout.getOrientation().name(), false);
-    writer.writeAttribute(SPLIT_LAYOUT_CONTAINMENT, createDraggableContainment(layout), true);
-/* XXX todo not implemented currently
-    final Style style = calculateHandleStyle(layout);
-    writer.writeStyleAttribute(style);
-    writer.writeClassAttribute(Classes.create(layout, layout.getOrientation().name()));
-
-    final int position;
-    if (layout.getOrientation() == Orientation.horizontal) {
-      position = style.getLeft().getPixel();
-    } else {
-      position = style.getTop().getPixel();
-    }
-*/
-    writer.startElement(HtmlElements.INPUT);
-    writer.writeIdAttribute(id + POSITION_ID_POSTFIX);
-    writer.writeNameAttribute(id + POSITION_ID_POSTFIX);
-    writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN);
-//    writer.writeAttribute(HtmlAttributes.value, Integer.toString(position), false);
-    writer.endElement(HtmlElements.INPUT);
-    writer.endElement(HtmlElements.SPAN);
-  }
-
-  private String createDraggableContainment(final AbstractUISplitLayout layout) {
-/* XXX todo not implemented currently
-    final UIComponent parent = layout.getParent();
-    final LayoutContainer container = (LayoutContainer) parent;
-    final List<UIComponent> components = LayoutUtils.findLayoutChildren(parent);
-    final Style firstComponent = ((Visual) components.get(0)).getStyle();
-    final Style secondComponent = ((Visual) components.get(1)).getStyle();
-
-    Measure minimum;
-
-    if (layout.getOrientation() == Orientation.horizontal) {
-      minimum = firstComponent.getMinWidth();
-      final int minimumSize1 = minimum != null ? minimum.getPixel() : 0;
-      minimum = secondComponent.getMinWidth();
-      final int minimumSize2 = minimum != null ? minimum.getPixel() : 0;
-      final int totalSize = container.getWidth().getPixel();
-      return "[" + minimumSize1 + ", 0, " + (totalSize - minimumSize2) + ", 0]";
-    } else {
-      minimum = firstComponent.getMinHeight();
-      final int minimumSize1 = minimum != null ? minimum.getPixel() : 0;
-      minimum = secondComponent.getMinHeight();
-      final int minimumSize2 = minimum != null ? minimum.getPixel() : 0;
-      final int totalSize = container.getHeight().getPixel();
-      return "[0, " + minimumSize1 + ", 0, " + (totalSize - minimumSize2) + "]";
-    }
-*/
-    return "";
-  }
-
-/* XXX todo not implemented currently
-  private Style calculateHandleStyle(final AbstractUISplitLayout layout) {
-    final UIComponent parent = layout.getParent();
-    final LayoutContainer container = (LayoutContainer) parent;
-    final LayoutComponent secondComponent = (LayoutComponent) LayoutUtils.findLayoutChildren(parent).get(1);
-    final Style style = new Style();
-
-    if (layout.getOrientation() == Orientation.horizontal) {
-      style.setWidth(Measure.valueOf(5));
-      style.setHeight(container.getCurrentHeight());
-      style.setLeft(Measure.valueOf(secondComponent.getLeft().subtract(5)));
-      style.setTop(Measure.valueOf(0));
-    } else {
-      style.setWidth(container.getCurrentWidth());
-      style.setHeight(Measure.valueOf(5));
-      style.setLeft(Measure.valueOf(0));
-      style.setTop(Measure.valueOf(Measure.valueOf(secondComponent.getTop().subtract(5))));
-    }
-    // todo: use CSS class
-    style.setDisplay(Display.block);
-    style.setPosition(Position.absolute);
-    return style;
-  }
-*/
-}
diff --git a/tobago-extension/tobago-sandbox/src/main/resources/META-INF/resources/tobago/sandbox/tobago-bootstrap/3.1.0/css/tobago.css b/tobago-extension/tobago-sandbox/src/main/resources/META-INF/resources/tobago/sandbox/tobago-bootstrap/3.1.0/css/tobago.css
index 763b2c7..3069d29 100644
--- a/tobago-extension/tobago-sandbox/src/main/resources/META-INF/resources/tobago/sandbox/tobago-bootstrap/3.1.0/css/tobago.css
+++ b/tobago-extension/tobago-sandbox/src/main/resources/META-INF/resources/tobago/sandbox/tobago-bootstrap/3.1.0/css/tobago.css
@@ -47,17 +47,3 @@
   height: 3px;
   background-color: #660000;
 }
-
-.tobago-splitLayout-vertical:hover {
-  cursor: n-resize;
-  border: dotted #000000 thin;
-  /*background-color: blue;*/
-  z-index: 10000;
-}
-
-.tobago-splitLayout-horizontal:hover {
-  cursor: e-resize;
-  border: dotted #000000 thin;
-  /*background-color: blue;*/
-  z-index: 10000;
-}
diff --git a/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log b/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
index 053c936..5b5cc6c 100644
--- a/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
@@ -1,4 +1,4 @@
-Build date: 2017-10-20 17:20:50
+Build date: 2017-10-25 14:49:52
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
@@ -13,8 +13,8 @@ Build date: 2017-10-20 17:20:50
 [INFO] Removing __CURRENT__/tobago-theme-charlotteville/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-charlotteville/target && git clone --branch v4.0.0-beta.2 https://github.com/twbs/bootstrap __CURRENT__/tobago-theme-charlotteville/target/checkout
 [INFO] Working directory: __CURRENT__/tobago-theme-charlotteville/target
-[INFO] Executing: /bin/sh -c cd /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/ && git ls-remote https://github.com/twbs/bootstrap
-[INFO] Working directory: /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T
+[INFO] Executing: /bin/sh -c cd /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/ && git ls-remote https://github.com/twbs/bootstrap
+[INFO] Working directory: /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-charlotteville/target/checkout && git pull https://github.com/twbs/bootstrap v4.0.0-beta.2:v4.0.0-beta.2
 [INFO] Working directory: __CURRENT__/tobago-theme-charlotteville/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-charlotteville/target/checkout && git checkout v4.0.0-beta.2
@@ -64,11 +64,11 @@ Build date: 2017-10-20 17:20:50
 [INFO] > node install.js
 [INFO] 
 [INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
+[INFO] Download already available at /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
 [INFO] Verified checksum of previously downloaded file
 [INFO] Extracting zip contents
 [INFO] Removing __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508512955863/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
+[INFO] Copying extracted folder /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508935939876/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
 [INFO] Writing location.js file
 [INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
 [INFO] 
@@ -79,10 +79,10 @@ Build date: 2017-10-20 17:20:50
 [INFO] Testing binary
 [INFO] Binary is fine
 [INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.5 
+[INFO] ├─┬ autoprefixer@7.1.6 
 [INFO] │ ├─┬ browserslist@2.5.1 
 [INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000748 
+[INFO] │ ├── caniuse-lite@1.0.30000750 
 [INFO] │ ├── normalize-range@0.1.2 
 [INFO] │ ├── num2fraction@1.2.2 
 [INFO] │ ├─┬ postcss@6.0.13 
@@ -110,7 +110,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ ├─┬ babel-register@7.0.0-beta.2 
 [INFO] │ │ ├─┬ find-cache-dir@1.0.0 
 [INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.0.0 
+[INFO] │ │ │ ├── make-dir@1.1.0 
 [INFO] │ │ │ └── pkg-dir@2.0.0 
 [INFO] │ │ ├── home-or-tmp@3.0.0 
 [INFO] │ │ ├─┬ pirates@3.0.1 
@@ -145,6 +145,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ │   │ │ ├─┬ strip-ansi@3.0.1 
 [INFO] │ │ │   │ │ │ └── ansi-regex@2.1.1 
 [INFO] │ │ │   │ │ └── wide-align@1.1.2 
+[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ └── set-blocking@2.0.0 
 [INFO] │ │ │   ├─┬ rc@1.2.1 
 [INFO] │ │ │   │ ├── deep-extend@0.4.2 
@@ -204,7 +205,6 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ │   │ ├─┬ tough-cookie@2.3.2 
 [INFO] │ │ │   │ │ └── punycode@1.4.1 
 [INFO] │ │ │   │ ├── tunnel-agent@0.6.0 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ └── uuid@3.0.1 
 [INFO] │ │ │   ├─┬ rimraf@2.6.1 
 [INFO] │ │ │   │ └─┬ glob@7.1.2 
@@ -317,12 +317,12 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
 [INFO] │ │ └─┬ regexpu-core@4.1.3 
 [INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.1 
+[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
 [INFO] │ │   ├── regjsgen@0.3.0 
 [INFO] │ │   ├─┬ regjsparser@0.2.1 
 [INFO] │ │   │ └── jsesc@0.5.0 
 [INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.2 
+[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
 [INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
 [INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
 [INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
@@ -358,8 +358,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │   └─┬ follow-redirects@1.0.0 
 [INFO] │ │     └── debug@2.6.9 
 [INFO] │ ├─┬ gzip-size@4.0.0 
-[INFO] │ │ ├── duplexer@0.1.1 
-[INFO] │ │ └── pify@3.0.0 
+[INFO] │ │ └── duplexer@0.1.1 
 [INFO] │ ├─┬ opencollective@1.0.3 
 [INFO] │ │ ├─┬ babel-polyfill@6.23.0 
 [INFO] │ │ │ └── regenerator-runtime@0.10.5 
@@ -391,16 +390,17 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ └── which@1.3.0 
 [INFO] │ └── is-windows@1.0.1 
 [INFO] ├─┬ eslint@4.9.0 
-[INFO] │ ├─┬ ajv@5.2.3 
+[INFO] │ ├─┬ ajv@5.3.0 
 [INFO] │ │ ├── co@4.6.0 
 [INFO] │ │ ├── fast-deep-equal@1.0.0 
+[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
 [INFO] │ │ └── json-schema-traverse@0.3.1 
 [INFO] │ ├─┬ babel-code-frame@6.26.0 
 [INFO] │ │ └─┬ chalk@1.1.3 
 [INFO] │ │   ├── ansi-styles@2.2.1 
 [INFO] │ │   ├── strip-ansi@3.0.1 
 [INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.2.0 
+[INFO] │ ├─┬ chalk@2.3.0 
 [INFO] │ │ └── escape-string-regexp@1.0.5 
 [INFO] │ ├─┬ concat-stream@1.6.0 
 [INFO] │ │ ├─┬ readable-stream@2.3.3 
@@ -427,14 +427,16 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ │ ├── circular-json@0.3.3 
 [INFO] │ │ │ ├─┬ del@2.2.2 
 [INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── arrify@1.0.1 
+[INFO] │ │ │ │ │ ├── arrify@1.0.1 
+[INFO] │ │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ └── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ └── write@0.2.1 
 [INFO] │ │ └── object-assign@4.1.1 
 [INFO] │ ├── functional-red-black-tree@1.0.1 
 [INFO] │ ├── globals@9.18.0 
-[INFO] │ ├── ignore@3.3.5 
+[INFO] │ ├── ignore@3.3.6 
 [INFO] │ ├── imurmurhash@0.1.4 
 [INFO] │ ├─┬ inquirer@3.0.6 
 [INFO] │ │ ├── ansi-escapes@1.4.0 
@@ -494,7 +496,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ └── text-table@0.2.0 
 [INFO] ├─┬ eslint-plugin-compat@2.0.1 
 [INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000748 
+[INFO] │ ├── caniuse-db@1.0.30000750 
 [INFO] │ └── requireindex@1.1.0 
 [INFO] ├─┬ htmllint-cli@0.0.6 
 [INFO] │ ├── bluebird@3.5.1 
@@ -562,6 +564,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │   │ │ └── path-exists@2.1.0 
 [INFO] │   │ └─┬ read-pkg@1.1.0 
 [INFO] │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │   │   │ ├── pify@2.3.0 
 [INFO] │   │   │ └─┬ strip-bom@2.0.0 
 [INFO] │   │   │   └── is-utf8@0.2.1 
 [INFO] │   │   └── path-type@1.1.0 
@@ -617,6 +620,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ │ │ └── path-exists@2.1.0 
 [INFO] │ │ │ └─┬ read-pkg@1.1.0 
 [INFO] │ │ │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │ │   │ ├── pify@2.3.0 
 [INFO] │ │ │   │ └── strip-bom@2.0.0 
 [INFO] │ │ │   └── path-type@1.1.0 
 [INFO] │ │ ├─┬ redent@1.0.0 
@@ -705,6 +709,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │   │ │ └── path-exists@2.1.0 
 [INFO] │ │   │ └─┬ read-pkg@1.1.0 
 [INFO] │ │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │   │   │ ├── pify@2.3.0 
 [INFO] │ │   │   │ └── strip-bom@2.0.0 
 [INFO] │ │   │   └── path-type@1.1.0 
 [INFO] │ │   ├─┬ string-width@1.0.2 
@@ -789,8 +794,10 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ ├─┬ read-pkg@2.0.0 
 [INFO] │ │ ├─┬ load-json-file@2.0.0 
 [INFO] │ │ │ ├── parse-json@2.2.0 
+[INFO] │ │ │ ├── pify@2.3.0 
 [INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@2.0.0 
+[INFO] │ │ └─┬ path-type@2.0.0 
+[INFO] │ │   └── pify@2.3.0 
 [INFO] │ ├─┬ shell-quote@1.6.1 
 [INFO] │ │ ├── array-filter@0.0.1 
 [INFO] │ │ ├── array-map@0.0.0 
@@ -844,9 +851,9 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ └── throttleit@1.0.0 
 [INFO] │ └─┬ which@1.2.14 
 [INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.5 
+[INFO] ├── popper.js@1.12.6 
 [INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.1 
+[INFO] │ ├── dependency-graph@0.5.2 
 [INFO] │ ├─┬ fs-extra@4.0.2 
 [INFO] │ │ ├── jsonfile@4.0.0 
 [INFO] │ │ └── universalify@0.1.1 
@@ -873,7 +880,8 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ ├─┬ postcss-reporter@5.0.0 
 [INFO] │ │ └── log-symbols@2.1.0 
 [INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├── read-cache@1.0.0 
+[INFO] │ ├─┬ read-cache@1.0.0 
+[INFO] │ │ └── pify@2.3.0 
 [INFO] │ └─┬ yargs@8.0.2 
 [INFO] │   ├── camelcase@4.1.0 
 [INFO] │   ├─┬ os-locale@2.1.0 
@@ -889,7 +897,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │   └── yargs-parser@7.0.0 
 [INFO] ├─┬ qunit-phantomjs-runner@2.3.0 
 [INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.0 
+[INFO] ├─┬ qunitjs@2.4.1 
 [INFO] │ ├── chokidar@1.6.1 
 [INFO] │ ├─┬ commander@2.9.0 
 [INFO] │ │ └── graceful-readlink@1.0.1 
@@ -918,7 +926,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] │ │ └── resolve@1.1.7 
 [INFO] │ ├── builtin-modules@1.1.1 
 [INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.4.0 
+[INFO] │ └── resolve@1.5.0 
 [INFO] ├─┬ shelljs@0.7.8 
 [INFO] │ ├── interpret@1.0.4 
 [INFO] │ └── rechoir@0.6.2 
@@ -1012,7 +1020,7 @@ Build date: 2017-10-20 17:20:50
 [INFO] ├─┬ stylelint-order@0.7.0 
 [INFO] │ └── postcss-sorting@3.0.2 
 [INFO] ├── stylelint-scss@2.1.0 
-[INFO] ├─┬ uglify-js@3.1.4 
+[INFO] ├─┬ uglify-js@3.1.5 
 [INFO] │ └── source-map@0.6.1 
 [INFO] ├── vnu-jar@17.11.1 
 [INFO] └─┬ workbox-build@2.1.0 
@@ -1034,11 +1042,11 @@ Build date: 2017-10-20 17:20:50
 [INFO] > node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css
 [INFO] 
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css.map
+[ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-grid.css.map
+[ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Rendering Complete, saving .css file...
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-reboot.css
@@ -1049,12 +1057,12 @@ Build date: 2017-10-20 17:20:50
 [INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.28 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.28 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.28 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.28 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.28 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.28 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.09 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.09 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.09 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.09 s)
+[ERROR] ✔ Finished dist/css/bootstrap.css (1.09 s)
+[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.09 s)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
@@ -1086,13 +1094,13 @@ Build date: 2017-10-20 17:20:50
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
-[INFO] 
-[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
+[INFO] 
+[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
+[INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-charlotteville/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
 [ERROR] 
@@ -1109,22 +1117,22 @@ Build date: 2017-10-20 17:20:50
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 2.7s
-[ERROR] created dist/js/bootstrap.bundle.js in 2.9s
+[ERROR] created dist/js/bootstrap.js in 1.6s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-charlotteville/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] created dist/js/bootstrap.js in 1.6s
+[ERROR] created dist/js/bootstrap.js in 1.4s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-charlotteville/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.5s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
@@ -1215,7 +1223,7 @@ main:
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 02:23 min
-[INFO] Finished at: 2017-10-20T17:23:15+02:00
-[INFO] Final Memory: 34M/521M
+[INFO] Total time: 02:58 min
+[INFO] Finished at: 2017-10-25T14:52:52+02:00
+[INFO] Final Memory: 29M/370M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
index 5e8ee81..97826aa 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
@@ -8705,10 +8705,6 @@ a.tobago-link.dropdown-item img, a.tobago-link.dropdown-item span {
   pointer-events: none;
 }
 
-.tobago-flexLayout > button.tobago-link {
-  height: 0;
-}
-
 button.tobago-link, button.tobago-treeCommand {
   color: #007bff;
   border-width: 0;
@@ -9304,6 +9300,29 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
   overflow: hidden;
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 .tobago-suggest {
   display: none;
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
index 4d1d2d3..477bab7 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
index 28b9eb7..3c8d211 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 34b9976..2cac680 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
index 27aace3..4031514 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -3,5 +3,5 @@
   * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
+var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-richmond/rebuild-theme.log b/tobago-theme/tobago-theme-richmond/rebuild-theme.log
index e77e809..14e5e68 100644
--- a/tobago-theme/tobago-theme-richmond/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-richmond/rebuild-theme.log
@@ -1,4 +1,4 @@
-Build date: 2017-10-20 17:23:16
+Build date: 2017-10-25 14:52:52
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
@@ -13,8 +13,8 @@ Build date: 2017-10-20 17:23:16
 [INFO] Removing __CURRENT__/tobago-theme-richmond/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-richmond/target && git clone --branch v4.0.0-beta.2 https://github.com/twbs/bootstrap __CURRENT__/tobago-theme-richmond/target/checkout
 [INFO] Working directory: __CURRENT__/tobago-theme-richmond/target
-[INFO] Executing: /bin/sh -c cd /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/ && git ls-remote https://github.com/twbs/bootstrap
-[INFO] Working directory: /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T
+[INFO] Executing: /bin/sh -c cd /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/ && git ls-remote https://github.com/twbs/bootstrap
+[INFO] Working directory: /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-richmond/target/checkout && git pull https://github.com/twbs/bootstrap v4.0.0-beta.2:v4.0.0-beta.2
 [INFO] Working directory: __CURRENT__/tobago-theme-richmond/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-richmond/target/checkout && git checkout v4.0.0-beta.2
@@ -64,11 +64,11 @@ Build date: 2017-10-20 17:23:16
 [INFO] > node install.js
 [INFO] 
 [INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
+[INFO] Download already available at /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
 [INFO] Verified checksum of previously downloaded file
 [INFO] Extracting zip contents
 [INFO] Removing __CURRENT__/tobago-theme-richmond/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508513091466/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-richmond/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
+[INFO] Copying extracted folder /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508936116676/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-richmond/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
 [INFO] Writing location.js file
 [INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-richmond/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
 [INFO] 
@@ -79,10 +79,10 @@ Build date: 2017-10-20 17:23:16
 [INFO] Testing binary
 [INFO] Binary is fine
 [INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-richmond/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.5 
+[INFO] ├─┬ autoprefixer@7.1.6 
 [INFO] │ ├─┬ browserslist@2.5.1 
 [INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000748 
+[INFO] │ ├── caniuse-lite@1.0.30000750 
 [INFO] │ ├── normalize-range@0.1.2 
 [INFO] │ ├── num2fraction@1.2.2 
 [INFO] │ ├─┬ postcss@6.0.13 
@@ -110,7 +110,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ ├─┬ babel-register@7.0.0-beta.2 
 [INFO] │ │ ├─┬ find-cache-dir@1.0.0 
 [INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.0.0 
+[INFO] │ │ │ ├── make-dir@1.1.0 
 [INFO] │ │ │ └── pkg-dir@2.0.0 
 [INFO] │ │ ├── home-or-tmp@3.0.0 
 [INFO] │ │ ├─┬ pirates@3.0.1 
@@ -123,6 +123,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ ├─┬ fsevents@1.1.2 
 [INFO] │ │ │ └─┬ node-pre-gyp@0.6.36 
 [INFO] │ │ │   ├─┬ mkdirp@0.5.1 
+[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ └── minimist@0.0.8 
 [INFO] │ │ │   ├─┬ nopt@4.0.1 
 [INFO] │ │ │   │ ├── abbrev@1.1.0 
@@ -316,12 +317,12 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
 [INFO] │ │ └─┬ regexpu-core@4.1.3 
 [INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.1 
+[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
 [INFO] │ │   ├── regjsgen@0.3.0 
 [INFO] │ │   ├─┬ regjsparser@0.2.1 
 [INFO] │ │   │ └── jsesc@0.5.0 
 [INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.2 
+[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
 [INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
 [INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
 [INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
@@ -357,8 +358,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │   └─┬ follow-redirects@1.0.0 
 [INFO] │ │     └── debug@2.6.9 
 [INFO] │ ├─┬ gzip-size@4.0.0 
-[INFO] │ │ ├── duplexer@0.1.1 
-[INFO] │ │ └── pify@3.0.0 
+[INFO] │ │ └── duplexer@0.1.1 
 [INFO] │ ├─┬ opencollective@1.0.3 
 [INFO] │ │ ├─┬ babel-polyfill@6.23.0 
 [INFO] │ │ │ └── regenerator-runtime@0.10.5 
@@ -390,16 +390,17 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ └── which@1.3.0 
 [INFO] │ └── is-windows@1.0.1 
 [INFO] ├─┬ eslint@4.9.0 
-[INFO] │ ├─┬ ajv@5.2.3 
+[INFO] │ ├─┬ ajv@5.3.0 
 [INFO] │ │ ├── co@4.6.0 
 [INFO] │ │ ├── fast-deep-equal@1.0.0 
+[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
 [INFO] │ │ └── json-schema-traverse@0.3.1 
 [INFO] │ ├─┬ babel-code-frame@6.26.0 
 [INFO] │ │ └─┬ chalk@1.1.3 
 [INFO] │ │   ├── ansi-styles@2.2.1 
 [INFO] │ │   ├── strip-ansi@3.0.1 
 [INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.2.0 
+[INFO] │ ├─┬ chalk@2.3.0 
 [INFO] │ │ └── escape-string-regexp@1.0.5 
 [INFO] │ ├─┬ concat-stream@1.6.0 
 [INFO] │ │ ├─┬ readable-stream@2.3.3 
@@ -426,20 +427,21 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ │ ├── circular-json@0.3.3 
 [INFO] │ │ │ ├─┬ del@2.2.2 
 [INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── arrify@1.0.1 
+[INFO] │ │ │ │ │ ├── arrify@1.0.1 
+[INFO] │ │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ └── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ └── write@0.2.1 
 [INFO] │ │ └── object-assign@4.1.1 
 [INFO] │ ├── functional-red-black-tree@1.0.1 
 [INFO] │ ├── globals@9.18.0 
-[INFO] │ ├── ignore@3.3.5 
+[INFO] │ ├── ignore@3.3.6 
 [INFO] │ ├── imurmurhash@0.1.4 
 [INFO] │ ├─┬ inquirer@3.0.6 
 [INFO] │ │ ├── ansi-escapes@1.4.0 
 [INFO] │ │ ├─┬ chalk@1.1.3 
 [INFO] │ │ │ ├── ansi-styles@2.2.1 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │ └── supports-color@2.0.0 
 [INFO] │ │ ├─┬ cli-cursor@2.1.0 
 [INFO] │ │ │ └─┬ restore-cursor@2.0.0 
@@ -494,7 +496,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ └── text-table@0.2.0 
 [INFO] ├─┬ eslint-plugin-compat@2.0.1 
 [INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000748 
+[INFO] │ ├── caniuse-db@1.0.30000750 
 [INFO] │ └── requireindex@1.1.0 
 [INFO] ├─┬ htmllint-cli@0.0.6 
 [INFO] │ ├── bluebird@3.5.1 
@@ -562,6 +564,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │   │ │ └── path-exists@2.1.0 
 [INFO] │   │ └─┬ read-pkg@1.1.0 
 [INFO] │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │   │   │ ├── pify@2.3.0 
 [INFO] │   │   │ └─┬ strip-bom@2.0.0 
 [INFO] │   │   │   └── is-utf8@0.2.1 
 [INFO] │   │   └── path-type@1.1.0 
@@ -617,6 +620,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ │ │ └── path-exists@2.1.0 
 [INFO] │ │ │ └─┬ read-pkg@1.1.0 
 [INFO] │ │ │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │ │   │ ├── pify@2.3.0 
 [INFO] │ │ │   │ └── strip-bom@2.0.0 
 [INFO] │ │ │   └── path-type@1.1.0 
 [INFO] │ │ ├─┬ redent@1.0.0 
@@ -705,6 +709,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │   │ │ └── path-exists@2.1.0 
 [INFO] │ │   │ └─┬ read-pkg@1.1.0 
 [INFO] │ │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │   │   │ ├── pify@2.3.0 
 [INFO] │ │   │   │ └── strip-bom@2.0.0 
 [INFO] │ │   │   └── path-type@1.1.0 
 [INFO] │ │   ├─┬ string-width@1.0.2 
@@ -789,8 +794,10 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ ├─┬ read-pkg@2.0.0 
 [INFO] │ │ ├─┬ load-json-file@2.0.0 
 [INFO] │ │ │ ├── parse-json@2.2.0 
+[INFO] │ │ │ ├── pify@2.3.0 
 [INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@2.0.0 
+[INFO] │ │ └─┬ path-type@2.0.0 
+[INFO] │ │   └── pify@2.3.0 
 [INFO] │ ├─┬ shell-quote@1.6.1 
 [INFO] │ │ ├── array-filter@0.0.1 
 [INFO] │ │ ├── array-map@0.0.0 
@@ -844,9 +851,9 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ └── throttleit@1.0.0 
 [INFO] │ └─┬ which@1.2.14 
 [INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.5 
+[INFO] ├── popper.js@1.12.6 
 [INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.1 
+[INFO] │ ├── dependency-graph@0.5.2 
 [INFO] │ ├─┬ fs-extra@4.0.2 
 [INFO] │ │ ├── jsonfile@4.0.0 
 [INFO] │ │ └── universalify@0.1.1 
@@ -873,7 +880,8 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ ├─┬ postcss-reporter@5.0.0 
 [INFO] │ │ └── log-symbols@2.1.0 
 [INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├── read-cache@1.0.0 
+[INFO] │ ├─┬ read-cache@1.0.0 
+[INFO] │ │ └── pify@2.3.0 
 [INFO] │ └─┬ yargs@8.0.2 
 [INFO] │   ├── camelcase@4.1.0 
 [INFO] │   ├─┬ os-locale@2.1.0 
@@ -889,7 +897,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │   └── yargs-parser@7.0.0 
 [INFO] ├─┬ qunit-phantomjs-runner@2.3.0 
 [INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.0 
+[INFO] ├─┬ qunitjs@2.4.1 
 [INFO] │ ├── chokidar@1.6.1 
 [INFO] │ ├─┬ commander@2.9.0 
 [INFO] │ │ └── graceful-readlink@1.0.1 
@@ -918,7 +926,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] │ │ └── resolve@1.1.7 
 [INFO] │ ├── builtin-modules@1.1.1 
 [INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.4.0 
+[INFO] │ └── resolve@1.5.0 
 [INFO] ├─┬ shelljs@0.7.8 
 [INFO] │ ├── interpret@1.0.4 
 [INFO] │ └── rechoir@0.6.2 
@@ -1012,7 +1020,7 @@ Build date: 2017-10-20 17:23:16
 [INFO] ├─┬ stylelint-order@0.7.0 
 [INFO] │ └── postcss-sorting@3.0.2 
 [INFO] ├── stylelint-scss@2.1.0 
-[INFO] ├─┬ uglify-js@3.1.4 
+[INFO] ├─┬ uglify-js@3.1.5 
 [INFO] │ └── source-map@0.6.1 
 [INFO] ├── vnu-jar@17.11.1 
 [INFO] └─┬ workbox-build@2.1.0 
@@ -1034,14 +1042,14 @@ Build date: 2017-10-20 17:23:16
 [INFO] > node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css
 [INFO] 
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap.css
+[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap.css.map
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-grid.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-grid.css
+[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-grid.css.map
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-reboot.css
+[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-richmond/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #9: npm run css-prefix) @ tobago-theme-richmond ---
 [INFO] Running 'npm run css-prefix' in __CURRENT__/tobago-theme-richmond/target/bootstrap
@@ -1049,12 +1057,12 @@ Build date: 2017-10-20 17:23:16
 [INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.25 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.25 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.05 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.05 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.05 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.05 s)
+[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.05 s)
+[ERROR] ✔ Finished dist/css/bootstrap.css (1.05 s)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-richmond ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-richmond/target/bootstrap
@@ -1082,21 +1090,21 @@ Build date: 2017-10-20 17:23:16
 [INFO] > npm-run-all --parallel js-compile-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-richmond/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
-[INFO] 
-[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
+[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-richmond/target/bootstrap
+[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
+[INFO] 
+[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [ERROR] 
-[ERROR] __CURRENT__/tobago-theme-richmond/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] 
 [ERROR] __CURRENT__/tobago-theme-richmond/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
+[ERROR] 
+[ERROR] __CURRENT__/tobago-theme-richmond/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
 [INFO] js/src/alert.js -> js/dist/alert.js
 [INFO] js/src/button.js -> js/dist/button.js
 [INFO] js/src/carousel.js -> js/dist/carousel.js
@@ -1109,8 +1117,8 @@ Build date: 2017-10-20 17:23:16
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 2.6s
-[ERROR] created dist/js/bootstrap.bundle.js in 2.8s
+[ERROR] created dist/js/bootstrap.js in 1.7s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.9s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
@@ -1146,14 +1154,14 @@ Build date: 2017-10-20 17:23:16
 [INFO] > npm-run-all --parallel js-minify-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-richmond/target/bootstrap
-[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
-[INFO] 
-[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
 [INFO] 
 [INFO] 
+[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-richmond/target/bootstrap
+[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
+[INFO] 
+[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-richmond/target/bootstrap
 [INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
 [INFO] 
@@ -1215,7 +1223,7 @@ main:
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 02:12 min
-[INFO] Finished at: 2017-10-20T17:25:29+02:00
-[INFO] Final Memory: 29M/386M
+[INFO] Total time: 02:56 min
+[INFO] Finished at: 2017-10-25T14:55:50+02:00
+[INFO] Final Memory: 29M/381M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css
index 31c5efe..22a7013 100644
--- a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css
@@ -8273,10 +8273,6 @@ a.tobago-link.dropdown-item img, a.tobago-link.dropdown-item span {
   pointer-events: none;
 }
 
-.tobago-flexLayout > button.tobago-link {
-  height: 0;
-}
-
 button.tobago-link, button.tobago-treeCommand {
   color: #007bff;
   border-width: 0;
@@ -8872,6 +8868,29 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
   overflow: hidden;
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 .tobago-suggest {
   display: none;
diff --git a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css.map
index 2e2511d..73ddbf7 100644
--- a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css
index b7e3c9d..d5b4939 100644
--- a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#4f4fa8;--success:#3c883c;--info:#007f7f;--warning:#a0ad2e;--danger:#8f59a9;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helveti [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#4f4fa8;--success:#3c883c;--info:#007f7f;--warning:#a0ad2e;--danger:#8f59a9;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helveti [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css.map
index d544267..16fbae3 100644
--- a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/js/bootstrap.min.js
index 27aace3..4031514 100644
--- a/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-richmond/src/main/resources/META-INF/resources/tobago/richmond/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -3,5 +3,5 @@
   * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
+var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/rebuild-theme.log b/tobago-theme/tobago-theme-scarborough/rebuild-theme.log
index 1b174ae..d670206 100644
--- a/tobago-theme/tobago-theme-scarborough/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-scarborough/rebuild-theme.log
@@ -1,4 +1,4 @@
-Build date: 2017-10-20 17:25:30
+Build date: 2017-10-25 14:55:50
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
@@ -13,8 +13,8 @@ Build date: 2017-10-20 17:25:30
 [INFO] Removing __CURRENT__/tobago-theme-scarborough/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-scarborough/target && git clone --branch v4.0.0-beta.2 https://github.com/twbs/bootstrap __CURRENT__/tobago-theme-scarborough/target/checkout
 [INFO] Working directory: __CURRENT__/tobago-theme-scarborough/target
-[INFO] Executing: /bin/sh -c cd /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/ && git ls-remote https://github.com/twbs/bootstrap
-[INFO] Working directory: /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T
+[INFO] Executing: /bin/sh -c cd /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/ && git ls-remote https://github.com/twbs/bootstrap
+[INFO] Working directory: /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-scarborough/target/checkout && git pull https://github.com/twbs/bootstrap v4.0.0-beta.2:v4.0.0-beta.2
 [INFO] Working directory: __CURRENT__/tobago-theme-scarborough/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-scarborough/target/checkout && git checkout v4.0.0-beta.2
@@ -64,11 +64,11 @@ Build date: 2017-10-20 17:25:30
 [INFO] > node install.js
 [INFO] 
 [INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
+[INFO] Download already available at /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
 [INFO] Verified checksum of previously downloaded file
 [INFO] Extracting zip contents
 [INFO] Removing __CURRENT__/tobago-theme-scarborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508513217404/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-scarborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
+[INFO] Copying extracted folder /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508936301173/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-scarborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
 [INFO] Writing location.js file
 [INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-scarborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
 [INFO] 
@@ -79,10 +79,10 @@ Build date: 2017-10-20 17:25:30
 [INFO] Testing binary
 [INFO] Binary is fine
 [INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-scarborough/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.5 
+[INFO] ├─┬ autoprefixer@7.1.6 
 [INFO] │ ├─┬ browserslist@2.5.1 
 [INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000748 
+[INFO] │ ├── caniuse-lite@1.0.30000750 
 [INFO] │ ├── normalize-range@0.1.2 
 [INFO] │ ├── num2fraction@1.2.2 
 [INFO] │ ├─┬ postcss@6.0.13 
@@ -110,7 +110,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ ├─┬ babel-register@7.0.0-beta.2 
 [INFO] │ │ ├─┬ find-cache-dir@1.0.0 
 [INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.0.0 
+[INFO] │ │ │ ├── make-dir@1.1.0 
 [INFO] │ │ │ └── pkg-dir@2.0.0 
 [INFO] │ │ ├── home-or-tmp@3.0.0 
 [INFO] │ │ ├─┬ pirates@3.0.1 
@@ -126,6 +126,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ │   │ └── minimist@0.0.8 
 [INFO] │ │ │   ├─┬ nopt@4.0.1 
 [INFO] │ │ │   │ ├── abbrev@1.1.0 
+[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ └─┬ osenv@0.1.4 
 [INFO] │ │ │   │   ├── os-homedir@1.0.2 
 [INFO] │ │ │   │   └── os-tmpdir@1.0.2 
@@ -316,12 +317,12 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
 [INFO] │ │ └─┬ regexpu-core@4.1.3 
 [INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.1 
+[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
 [INFO] │ │   ├── regjsgen@0.3.0 
 [INFO] │ │   ├─┬ regjsparser@0.2.1 
 [INFO] │ │   │ └── jsesc@0.5.0 
 [INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.2 
+[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
 [INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
 [INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
 [INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
@@ -357,8 +358,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │   └─┬ follow-redirects@1.0.0 
 [INFO] │ │     └── debug@2.6.9 
 [INFO] │ ├─┬ gzip-size@4.0.0 
-[INFO] │ │ ├── duplexer@0.1.1 
-[INFO] │ │ └── pify@3.0.0 
+[INFO] │ │ └── duplexer@0.1.1 
 [INFO] │ ├─┬ opencollective@1.0.3 
 [INFO] │ │ ├─┬ babel-polyfill@6.23.0 
 [INFO] │ │ │ └── regenerator-runtime@0.10.5 
@@ -390,16 +390,17 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ └── which@1.3.0 
 [INFO] │ └── is-windows@1.0.1 
 [INFO] ├─┬ eslint@4.9.0 
-[INFO] │ ├─┬ ajv@5.2.3 
+[INFO] │ ├─┬ ajv@5.3.0 
 [INFO] │ │ ├── co@4.6.0 
 [INFO] │ │ ├── fast-deep-equal@1.0.0 
+[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
 [INFO] │ │ └── json-schema-traverse@0.3.1 
 [INFO] │ ├─┬ babel-code-frame@6.26.0 
 [INFO] │ │ └─┬ chalk@1.1.3 
 [INFO] │ │   ├── ansi-styles@2.2.1 
 [INFO] │ │   ├── strip-ansi@3.0.1 
 [INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.2.0 
+[INFO] │ ├─┬ chalk@2.3.0 
 [INFO] │ │ └── escape-string-regexp@1.0.5 
 [INFO] │ ├─┬ concat-stream@1.6.0 
 [INFO] │ │ ├─┬ readable-stream@2.3.3 
@@ -426,14 +427,16 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ │ ├── circular-json@0.3.3 
 [INFO] │ │ │ ├─┬ del@2.2.2 
 [INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── arrify@1.0.1 
+[INFO] │ │ │ │ │ ├── arrify@1.0.1 
+[INFO] │ │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ └── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ └── write@0.2.1 
 [INFO] │ │ └── object-assign@4.1.1 
 [INFO] │ ├── functional-red-black-tree@1.0.1 
 [INFO] │ ├── globals@9.18.0 
-[INFO] │ ├── ignore@3.3.5 
+[INFO] │ ├── ignore@3.3.6 
 [INFO] │ ├── imurmurhash@0.1.4 
 [INFO] │ ├─┬ inquirer@3.0.6 
 [INFO] │ │ ├── ansi-escapes@1.4.0 
@@ -493,7 +496,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ └── text-table@0.2.0 
 [INFO] ├─┬ eslint-plugin-compat@2.0.1 
 [INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000748 
+[INFO] │ ├── caniuse-db@1.0.30000750 
 [INFO] │ └── requireindex@1.1.0 
 [INFO] ├─┬ htmllint-cli@0.0.6 
 [INFO] │ ├── bluebird@3.5.1 
@@ -561,6 +564,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │   │ │ └── path-exists@2.1.0 
 [INFO] │   │ └─┬ read-pkg@1.1.0 
 [INFO] │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │   │   │ ├── pify@2.3.0 
 [INFO] │   │   │ └─┬ strip-bom@2.0.0 
 [INFO] │   │   │   └── is-utf8@0.2.1 
 [INFO] │   │   └── path-type@1.1.0 
@@ -616,6 +620,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ │ │ └── path-exists@2.1.0 
 [INFO] │ │ │ └─┬ read-pkg@1.1.0 
 [INFO] │ │ │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │ │   │ ├── pify@2.3.0 
 [INFO] │ │ │   │ └── strip-bom@2.0.0 
 [INFO] │ │ │   └── path-type@1.1.0 
 [INFO] │ │ ├─┬ redent@1.0.0 
@@ -671,7 +676,6 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ │ │ ├── extsprintf@1.3.0 
 [INFO] │ │ │ │ ├── json-schema@0.2.3 
 [INFO] │ │ │ │ └── verror@1.10.0 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │ └─┬ sshpk@1.13.1 
 [INFO] │ │ │   ├── asn1@0.2.3 
 [INFO] │ │ │   ├── bcrypt-pbkdf@1.0.1 
@@ -705,6 +709,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │   │ │ └── path-exists@2.1.0 
 [INFO] │ │   │ └─┬ read-pkg@1.1.0 
 [INFO] │ │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │   │   │ ├── pify@2.3.0 
 [INFO] │ │   │   │ └── strip-bom@2.0.0 
 [INFO] │ │   │   └── path-type@1.1.0 
 [INFO] │ │   ├─┬ string-width@1.0.2 
@@ -789,8 +794,10 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ ├─┬ read-pkg@2.0.0 
 [INFO] │ │ ├─┬ load-json-file@2.0.0 
 [INFO] │ │ │ ├── parse-json@2.2.0 
+[INFO] │ │ │ ├── pify@2.3.0 
 [INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@2.0.0 
+[INFO] │ │ └─┬ path-type@2.0.0 
+[INFO] │ │   └── pify@2.3.0 
 [INFO] │ ├─┬ shell-quote@1.6.1 
 [INFO] │ │ ├── array-filter@0.0.1 
 [INFO] │ │ ├── array-map@0.0.0 
@@ -844,9 +851,9 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ └── throttleit@1.0.0 
 [INFO] │ └─┬ which@1.2.14 
 [INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.5 
+[INFO] ├── popper.js@1.12.6 
 [INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.1 
+[INFO] │ ├── dependency-graph@0.5.2 
 [INFO] │ ├─┬ fs-extra@4.0.2 
 [INFO] │ │ ├── jsonfile@4.0.0 
 [INFO] │ │ └── universalify@0.1.1 
@@ -873,7 +880,8 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ ├─┬ postcss-reporter@5.0.0 
 [INFO] │ │ └── log-symbols@2.1.0 
 [INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├── read-cache@1.0.0 
+[INFO] │ ├─┬ read-cache@1.0.0 
+[INFO] │ │ └── pify@2.3.0 
 [INFO] │ └─┬ yargs@8.0.2 
 [INFO] │   ├── camelcase@4.1.0 
 [INFO] │   ├─┬ os-locale@2.1.0 
@@ -889,7 +897,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │   └── yargs-parser@7.0.0 
 [INFO] ├─┬ qunit-phantomjs-runner@2.3.0 
 [INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.0 
+[INFO] ├─┬ qunitjs@2.4.1 
 [INFO] │ ├── chokidar@1.6.1 
 [INFO] │ ├─┬ commander@2.9.0 
 [INFO] │ │ └── graceful-readlink@1.0.1 
@@ -918,7 +926,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] │ │ └── resolve@1.1.7 
 [INFO] │ ├── builtin-modules@1.1.1 
 [INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.4.0 
+[INFO] │ └── resolve@1.5.0 
 [INFO] ├─┬ shelljs@0.7.8 
 [INFO] │ ├── interpret@1.0.4 
 [INFO] │ └── rechoir@0.6.2 
@@ -1012,7 +1020,7 @@ Build date: 2017-10-20 17:25:30
 [INFO] ├─┬ stylelint-order@0.7.0 
 [INFO] │ └── postcss-sorting@3.0.2 
 [INFO] ├── stylelint-scss@2.1.0 
-[INFO] ├─┬ uglify-js@3.1.4 
+[INFO] ├─┬ uglify-js@3.1.5 
 [INFO] │ └── source-map@0.6.1 
 [INFO] ├── vnu-jar@17.11.1 
 [INFO] └─┬ workbox-build@2.1.0 
@@ -1040,8 +1048,8 @@ Build date: 2017-10-20 17:25:30
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-scarborough/target/bootstrap/dist/css/bootstrap-grid.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-scarborough/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote CSS to __CURRENT__/tobago-theme-scarborough/target/bootstrap/dist/css/bootstrap-reboot.css
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-scarborough/target/bootstrap/dist/css/bootstrap-reboot.css.map
+[ERROR] Wrote CSS to __CURRENT__/tobago-theme-scarborough/target/bootstrap/dist/css/bootstrap-reboot.css
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #9: npm run css-prefix) @ tobago-theme-scarborough ---
 [INFO] Running 'npm run css-prefix' in __CURRENT__/tobago-theme-scarborough/target/bootstrap
@@ -1049,12 +1057,12 @@ Build date: 2017-10-20 17:25:30
 [INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.23 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.24 s)
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.24 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.16 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.17 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.17 s)
+[ERROR] ✔ Finished dist/css/bootstrap.css (1.17 s)
+[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.17 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.17 s)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-scarborough ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-scarborough/target/bootstrap
@@ -1082,21 +1090,21 @@ Build date: 2017-10-20 17:25:30
 [INFO] > npm-run-all --parallel js-compile-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-scarborough/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
-[INFO] 
-[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
+[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-scarborough/target/bootstrap
+[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
+[INFO] 
+[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [ERROR] 
-[ERROR] __CURRENT__/tobago-theme-scarborough/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] 
 [ERROR] __CURRENT__/tobago-theme-scarborough/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
+[ERROR] 
+[ERROR] __CURRENT__/tobago-theme-scarborough/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
 [INFO] js/src/alert.js -> js/dist/alert.js
 [INFO] js/src/button.js -> js/dist/button.js
 [INFO] js/src/carousel.js -> js/dist/carousel.js
@@ -1109,22 +1117,22 @@ Build date: 2017-10-20 17:25:30
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 2.7s
-[ERROR] created dist/js/bootstrap.bundle.js in 2.9s
+[ERROR] created dist/js/bootstrap.js in 1.6s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-scarborough/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] created dist/js/bootstrap.js in 1.6s
+[ERROR] created dist/js/bootstrap.js in 1.5s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-scarborough/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.6s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
@@ -1146,19 +1154,19 @@ Build date: 2017-10-20 17:25:30
 [INFO] > npm-run-all --parallel js-minify-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-scarborough/target/bootstrap
-[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
+[INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-scarborough/target/bootstrap
+[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
 [INFO] 
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-scarborough/target/bootstrap
-[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
+[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-scarborough/target/bootstrap
+[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
 [INFO] 
-[ERROR] INFO: Using input source map: dist/js/bootstrap.bundle.js.map
-[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
+[ERROR] INFO: Using input source map: dist/js/bootstrap.js.mapINFO: Using input source map: dist/js/bootstrap.bundle.js.map
+[ERROR] 
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-scarborough/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
@@ -1215,7 +1223,7 @@ main:
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 02:04 min
-[INFO] Finished at: 2017-10-20T17:27:35+02:00
-[INFO] Final Memory: 34M/506M
+[INFO] Total time: 03:02 min
+[INFO] Finished at: 2017-10-25T14:58:54+02:00
+[INFO] Final Memory: 29M/377M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
index d261bd4..f19ad00 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
@@ -8705,10 +8705,6 @@ a.tobago-link.dropdown-item img, a.tobago-link.dropdown-item span {
   pointer-events: none;
 }
 
-.tobago-flexLayout > button.tobago-link {
-  height: 0;
-}
-
 button.tobago-link, button.tobago-treeCommand {
   color: #007bff;
   border-width: 0;
@@ -9304,6 +9300,29 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
   overflow: hidden;
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 .tobago-suggest {
   display: none;
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
index de1a7d1..0ee8c7c 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
index 6d3f476..4c9e261 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 04da7e5..9dda6a9 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/js/bootstrap.min.js
index 27aace3..4031514 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -3,5 +3,5 @@
   * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
+var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/rebuild-theme.log b/tobago-theme/tobago-theme-speyside/rebuild-theme.log
index 2c26f70..86f7d0e 100644
--- a/tobago-theme/tobago-theme-speyside/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-speyside/rebuild-theme.log
@@ -1,4 +1,4 @@
-Build date: 2017-10-20 17:27:36
+Build date: 2017-10-25 14:58:54
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
@@ -13,8 +13,8 @@ Build date: 2017-10-20 17:27:36
 [INFO] Removing __CURRENT__/tobago-theme-speyside/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-speyside/target && git clone --branch v4.0.0-beta.2 https://github.com/twbs/bootstrap __CURRENT__/tobago-theme-speyside/target/checkout
 [INFO] Working directory: __CURRENT__/tobago-theme-speyside/target
-[INFO] Executing: /bin/sh -c cd /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/ && git ls-remote https://github.com/twbs/bootstrap
-[INFO] Working directory: /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T
+[INFO] Executing: /bin/sh -c cd /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/ && git ls-remote https://github.com/twbs/bootstrap
+[INFO] Working directory: /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-speyside/target/checkout && git pull https://github.com/twbs/bootstrap v4.0.0-beta.2:v4.0.0-beta.2
 [INFO] Working directory: __CURRENT__/tobago-theme-speyside/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-speyside/target/checkout && git checkout v4.0.0-beta.2
@@ -64,11 +64,11 @@ Build date: 2017-10-20 17:27:36
 [INFO] > node install.js
 [INFO] 
 [INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
+[INFO] Download already available at /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
 [INFO] Verified checksum of previously downloaded file
 [INFO] Extracting zip contents
 [INFO] Removing __CURRENT__/tobago-theme-speyside/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508513347031/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-speyside/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
+[INFO] Copying extracted folder /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508936478871/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-speyside/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
 [INFO] Writing location.js file
 [INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-speyside/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
 [INFO] 
@@ -79,10 +79,10 @@ Build date: 2017-10-20 17:27:36
 [INFO] Testing binary
 [INFO] Binary is fine
 [INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-speyside/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.5 
+[INFO] ├─┬ autoprefixer@7.1.6 
 [INFO] │ ├─┬ browserslist@2.5.1 
 [INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000748 
+[INFO] │ ├── caniuse-lite@1.0.30000750 
 [INFO] │ ├── normalize-range@0.1.2 
 [INFO] │ ├── num2fraction@1.2.2 
 [INFO] │ ├─┬ postcss@6.0.13 
@@ -110,7 +110,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ ├─┬ babel-register@7.0.0-beta.2 
 [INFO] │ │ ├─┬ find-cache-dir@1.0.0 
 [INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.0.0 
+[INFO] │ │ │ ├── make-dir@1.1.0 
 [INFO] │ │ │ └── pkg-dir@2.0.0 
 [INFO] │ │ ├── home-or-tmp@3.0.0 
 [INFO] │ │ ├─┬ pirates@3.0.1 
@@ -156,6 +156,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ │   │ ├── aws4@1.6.0 
 [INFO] │ │ │   │ ├── caseless@0.12.0 
 [INFO] │ │ │   │ ├─┬ combined-stream@1.0.5 
+[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ │ └── delayed-stream@1.0.0 
 [INFO] │ │ │   │ ├── extend@3.0.1 
 [INFO] │ │ │   │ ├── forever-agent@0.6.1 
@@ -201,7 +202,6 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ │   │ ├── qs@6.4.0 
 [INFO] │ │ │   │ ├── safe-buffer@5.0.1 
 [INFO] │ │ │   │ ├── stringstream@0.0.5 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ ├─┬ tough-cookie@2.3.2 
 [INFO] │ │ │   │ │ └── punycode@1.4.1 
 [INFO] │ │ │   │ ├── tunnel-agent@0.6.0 
@@ -317,12 +317,12 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
 [INFO] │ │ └─┬ regexpu-core@4.1.3 
 [INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.1 
+[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
 [INFO] │ │   ├── regjsgen@0.3.0 
 [INFO] │ │   ├─┬ regjsparser@0.2.1 
 [INFO] │ │   │ └── jsesc@0.5.0 
 [INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.2 
+[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
 [INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
 [INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
 [INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
@@ -358,8 +358,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │   └─┬ follow-redirects@1.0.0 
 [INFO] │ │     └── debug@2.6.9 
 [INFO] │ ├─┬ gzip-size@4.0.0 
-[INFO] │ │ ├── duplexer@0.1.1 
-[INFO] │ │ └── pify@3.0.0 
+[INFO] │ │ └── duplexer@0.1.1 
 [INFO] │ ├─┬ opencollective@1.0.3 
 [INFO] │ │ ├─┬ babel-polyfill@6.23.0 
 [INFO] │ │ │ └── regenerator-runtime@0.10.5 
@@ -391,16 +390,17 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ └── which@1.3.0 
 [INFO] │ └── is-windows@1.0.1 
 [INFO] ├─┬ eslint@4.9.0 
-[INFO] │ ├─┬ ajv@5.2.3 
+[INFO] │ ├─┬ ajv@5.3.0 
 [INFO] │ │ ├── co@4.6.0 
 [INFO] │ │ ├── fast-deep-equal@1.0.0 
+[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
 [INFO] │ │ └── json-schema-traverse@0.3.1 
 [INFO] │ ├─┬ babel-code-frame@6.26.0 
 [INFO] │ │ └─┬ chalk@1.1.3 
 [INFO] │ │   ├── ansi-styles@2.2.1 
 [INFO] │ │   ├── strip-ansi@3.0.1 
 [INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.2.0 
+[INFO] │ ├─┬ chalk@2.3.0 
 [INFO] │ │ └── escape-string-regexp@1.0.5 
 [INFO] │ ├─┬ concat-stream@1.6.0 
 [INFO] │ │ ├─┬ readable-stream@2.3.3 
@@ -427,14 +427,16 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ │ ├── circular-json@0.3.3 
 [INFO] │ │ │ ├─┬ del@2.2.2 
 [INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── arrify@1.0.1 
+[INFO] │ │ │ │ │ ├── arrify@1.0.1 
+[INFO] │ │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ └── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ └── write@0.2.1 
 [INFO] │ │ └── object-assign@4.1.1 
 [INFO] │ ├── functional-red-black-tree@1.0.1 
 [INFO] │ ├── globals@9.18.0 
-[INFO] │ ├── ignore@3.3.5 
+[INFO] │ ├── ignore@3.3.6 
 [INFO] │ ├── imurmurhash@0.1.4 
 [INFO] │ ├─┬ inquirer@3.0.6 
 [INFO] │ │ ├── ansi-escapes@1.4.0 
@@ -494,7 +496,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ └── text-table@0.2.0 
 [INFO] ├─┬ eslint-plugin-compat@2.0.1 
 [INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000748 
+[INFO] │ ├── caniuse-db@1.0.30000750 
 [INFO] │ └── requireindex@1.1.0 
 [INFO] ├─┬ htmllint-cli@0.0.6 
 [INFO] │ ├── bluebird@3.5.1 
@@ -562,6 +564,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │   │ │ └── path-exists@2.1.0 
 [INFO] │   │ └─┬ read-pkg@1.1.0 
 [INFO] │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │   │   │ ├── pify@2.3.0 
 [INFO] │   │   │ └─┬ strip-bom@2.0.0 
 [INFO] │   │   │   └── is-utf8@0.2.1 
 [INFO] │   │   └── path-type@1.1.0 
@@ -617,6 +620,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ │ │ └── path-exists@2.1.0 
 [INFO] │ │ │ └─┬ read-pkg@1.1.0 
 [INFO] │ │ │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │ │   │ ├── pify@2.3.0 
 [INFO] │ │ │   │ └── strip-bom@2.0.0 
 [INFO] │ │ │   └── path-type@1.1.0 
 [INFO] │ │ ├─┬ redent@1.0.0 
@@ -705,6 +709,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │   │ │ └── path-exists@2.1.0 
 [INFO] │ │   │ └─┬ read-pkg@1.1.0 
 [INFO] │ │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │   │   │ ├── pify@2.3.0 
 [INFO] │ │   │   │ └── strip-bom@2.0.0 
 [INFO] │ │   │   └── path-type@1.1.0 
 [INFO] │ │   ├─┬ string-width@1.0.2 
@@ -789,8 +794,10 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ ├─┬ read-pkg@2.0.0 
 [INFO] │ │ ├─┬ load-json-file@2.0.0 
 [INFO] │ │ │ ├── parse-json@2.2.0 
+[INFO] │ │ │ ├── pify@2.3.0 
 [INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@2.0.0 
+[INFO] │ │ └─┬ path-type@2.0.0 
+[INFO] │ │   └── pify@2.3.0 
 [INFO] │ ├─┬ shell-quote@1.6.1 
 [INFO] │ │ ├── array-filter@0.0.1 
 [INFO] │ │ ├── array-map@0.0.0 
@@ -844,9 +851,9 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ └── throttleit@1.0.0 
 [INFO] │ └─┬ which@1.2.14 
 [INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.5 
+[INFO] ├── popper.js@1.12.6 
 [INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.1 
+[INFO] │ ├── dependency-graph@0.5.2 
 [INFO] │ ├─┬ fs-extra@4.0.2 
 [INFO] │ │ ├── jsonfile@4.0.0 
 [INFO] │ │ └── universalify@0.1.1 
@@ -873,7 +880,8 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ ├─┬ postcss-reporter@5.0.0 
 [INFO] │ │ └── log-symbols@2.1.0 
 [INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├── read-cache@1.0.0 
+[INFO] │ ├─┬ read-cache@1.0.0 
+[INFO] │ │ └── pify@2.3.0 
 [INFO] │ └─┬ yargs@8.0.2 
 [INFO] │   ├── camelcase@4.1.0 
 [INFO] │   ├─┬ os-locale@2.1.0 
@@ -889,7 +897,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │   └── yargs-parser@7.0.0 
 [INFO] ├─┬ qunit-phantomjs-runner@2.3.0 
 [INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.0 
+[INFO] ├─┬ qunitjs@2.4.1 
 [INFO] │ ├── chokidar@1.6.1 
 [INFO] │ ├─┬ commander@2.9.0 
 [INFO] │ │ └── graceful-readlink@1.0.1 
@@ -918,7 +926,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] │ │ └── resolve@1.1.7 
 [INFO] │ ├── builtin-modules@1.1.1 
 [INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.4.0 
+[INFO] │ └── resolve@1.5.0 
 [INFO] ├─┬ shelljs@0.7.8 
 [INFO] │ ├── interpret@1.0.4 
 [INFO] │ └── rechoir@0.6.2 
@@ -1012,7 +1020,7 @@ Build date: 2017-10-20 17:27:36
 [INFO] ├─┬ stylelint-order@0.7.0 
 [INFO] │ └── postcss-sorting@3.0.2 
 [INFO] ├── stylelint-scss@2.1.0 
-[INFO] ├─┬ uglify-js@3.1.4 
+[INFO] ├─┬ uglify-js@3.1.5 
 [INFO] │ └── source-map@0.6.1 
 [INFO] ├── vnu-jar@17.11.1 
 [INFO] └─┬ workbox-build@2.1.0 
@@ -1040,8 +1048,8 @@ Build date: 2017-10-20 17:27:36
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-speyside/target/bootstrap/dist/css/bootstrap-grid.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-speyside/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote CSS to __CURRENT__/tobago-theme-speyside/target/bootstrap/dist/css/bootstrap-reboot.css
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-speyside/target/bootstrap/dist/css/bootstrap-reboot.css.map
+[ERROR] Wrote CSS to __CURRENT__/tobago-theme-speyside/target/bootstrap/dist/css/bootstrap-reboot.css
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #9: npm run css-prefix) @ tobago-theme-speyside ---
 [INFO] Running 'npm run css-prefix' in __CURRENT__/tobago-theme-speyside/target/bootstrap
@@ -1049,12 +1057,12 @@ Build date: 2017-10-20 17:27:36
 [INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.35 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.35 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.35 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.35 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.35 s)
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.35 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (990 ms)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (992 ms)
+[ERROR] ✔ Finished dist/css/bootstrap.min.css (992 ms)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (993 ms)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (993 ms)
+[ERROR] ✔ Finished dist/css/bootstrap.css (993 ms)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-speyside ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-speyside/target/bootstrap
@@ -1082,16 +1090,16 @@ Build date: 2017-10-20 17:27:36
 [INFO] > npm-run-all --parallel js-compile-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-speyside/target/bootstrap
-[INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
+[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-speyside/target/bootstrap
+[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-speyside/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
+[INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-speyside/target/bootstrap
+[INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-speyside/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
@@ -1109,22 +1117,22 @@ Build date: 2017-10-20 17:27:36
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 3.1s
-[ERROR] created dist/js/bootstrap.bundle.js in 3.4s
+[ERROR] created dist/js/bootstrap.js in 1.5s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.7s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-speyside/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] created dist/js/bootstrap.js in 1.7s
+[ERROR] created dist/js/bootstrap.js in 1.4s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-speyside/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] created dist/js/bootstrap.bundle.js in 2s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.5s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
@@ -1150,13 +1158,13 @@ Build date: 2017-10-20 17:27:36
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-speyside/target/bootstrap
-[INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
-[INFO] 
-[INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-speyside/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
 [INFO] 
+[INFO] 
+[INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-speyside/target/bootstrap
+[INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
+[INFO] 
 [ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [ERROR] INFO: Using input source map: dist/js/bootstrap.bundle.js.map
 [INFO] 
@@ -1215,7 +1223,7 @@ main:
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 02:12 min
-[INFO] Finished at: 2017-10-20T17:29:49+02:00
-[INFO] Final Memory: 29M/395M
+[INFO] Total time: 02:54 min
+[INFO] Finished at: 2017-10-25T15:01:49+02:00
+[INFO] Final Memory: 30M/371M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
index 1edfbfd..d900b14 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
@@ -8705,10 +8705,6 @@ a.tobago-link.dropdown-item img, a.tobago-link.dropdown-item span {
   pointer-events: none;
 }
 
-.tobago-flexLayout > button.tobago-link {
-  height: 0;
-}
-
 button.tobago-link, button.tobago-treeCommand {
   color: #007bff;
   border-width: 0;
@@ -9304,6 +9300,29 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
   overflow: hidden;
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 .tobago-suggest {
   display: none;
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
index 25687ad..3e2cc2f 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
index 48894c2..f006bc1 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
index cb7f1fc..8313e14 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/js/bootstrap.min.js
index 27aace3..4031514 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -3,5 +3,5 @@
   * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
+var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/rebuild-theme.log b/tobago-theme/tobago-theme-standard/rebuild-theme.log
index 4f5bf09..53eff55 100644
--- a/tobago-theme/tobago-theme-standard/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-standard/rebuild-theme.log
@@ -1,4 +1,4 @@
-Build date: 2017-10-20 17:29:49
+Build date: 2017-10-25 15:01:50
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
@@ -13,8 +13,8 @@ Build date: 2017-10-20 17:29:49
 [INFO] Removing __CURRENT__/tobago-theme-standard/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-standard/target && git clone --branch v4.0.0-beta.2 https://github.com/twbs/bootstrap __CURRENT__/tobago-theme-standard/target/checkout
 [INFO] Working directory: __CURRENT__/tobago-theme-standard/target
-[INFO] Executing: /bin/sh -c cd /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/ && git ls-remote https://github.com/twbs/bootstrap
-[INFO] Working directory: /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T
+[INFO] Executing: /bin/sh -c cd /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/ && git ls-remote https://github.com/twbs/bootstrap
+[INFO] Working directory: /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-standard/target/checkout && git pull https://github.com/twbs/bootstrap v4.0.0-beta.2:v4.0.0-beta.2
 [INFO] Working directory: __CURRENT__/tobago-theme-standard/target/checkout
 [INFO] Executing: /bin/sh -c cd __CURRENT__/tobago-theme-standard/target/checkout && git checkout v4.0.0-beta.2
@@ -64,11 +64,11 @@ Build date: 2017-10-20 17:29:49
 [INFO] > node install.js
 [INFO] 
 [INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
+[INFO] Download already available at /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
 [INFO] Verified checksum of previously downloaded file
 [INFO] Extracting zip contents
 [INFO] Removing __CURRENT__/tobago-theme-standard/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508513476056/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-standard/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
+[INFO] Copying extracted folder /var/folders/w0/pg4pxr7972l6bq85x08s5cl00000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1508936653830/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-standard/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
 [INFO] Writing location.js file
 [INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-standard/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
 [INFO] 
@@ -79,10 +79,10 @@ Build date: 2017-10-20 17:29:49
 [INFO] Testing binary
 [INFO] Binary is fine
 [INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-standard/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.5 
+[INFO] ├─┬ autoprefixer@7.1.6 
 [INFO] │ ├─┬ browserslist@2.5.1 
 [INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000748 
+[INFO] │ ├── caniuse-lite@1.0.30000750 
 [INFO] │ ├── normalize-range@0.1.2 
 [INFO] │ ├── num2fraction@1.2.2 
 [INFO] │ ├─┬ postcss@6.0.13 
@@ -110,7 +110,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ ├─┬ babel-register@7.0.0-beta.2 
 [INFO] │ │ ├─┬ find-cache-dir@1.0.0 
 [INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.0.0 
+[INFO] │ │ │ ├── make-dir@1.1.0 
 [INFO] │ │ │ └── pkg-dir@2.0.0 
 [INFO] │ │ ├── home-or-tmp@3.0.0 
 [INFO] │ │ ├─┬ pirates@3.0.1 
@@ -137,6 +137,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ │   │ │ ├── aproba@1.1.1 
 [INFO] │ │ │   │ │ ├── has-unicode@2.0.1 
 [INFO] │ │ │   │ │ ├── object-assign@4.1.1 
+[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ │   │ │ ├── signal-exit@3.0.2 
 [INFO] │ │ │   │ │ ├─┬ string-width@1.0.2 
 [INFO] │ │ │   │ │ │ ├── code-point-at@1.1.0 
@@ -316,12 +317,12 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
 [INFO] │ │ └─┬ regexpu-core@4.1.3 
 [INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.1 
+[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
 [INFO] │ │   ├── regjsgen@0.3.0 
 [INFO] │ │   ├─┬ regjsparser@0.2.1 
 [INFO] │ │   │ └── jsesc@0.5.0 
 [INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.2 
+[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
 [INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
 [INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
 [INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
@@ -357,8 +358,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │   └─┬ follow-redirects@1.0.0 
 [INFO] │ │     └── debug@2.6.9 
 [INFO] │ ├─┬ gzip-size@4.0.0 
-[INFO] │ │ ├── duplexer@0.1.1 
-[INFO] │ │ └── pify@3.0.0 
+[INFO] │ │ └── duplexer@0.1.1 
 [INFO] │ ├─┬ opencollective@1.0.3 
 [INFO] │ │ ├─┬ babel-polyfill@6.23.0 
 [INFO] │ │ │ └── regenerator-runtime@0.10.5 
@@ -390,16 +390,17 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ └── which@1.3.0 
 [INFO] │ └── is-windows@1.0.1 
 [INFO] ├─┬ eslint@4.9.0 
-[INFO] │ ├─┬ ajv@5.2.3 
+[INFO] │ ├─┬ ajv@5.3.0 
 [INFO] │ │ ├── co@4.6.0 
 [INFO] │ │ ├── fast-deep-equal@1.0.0 
+[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
 [INFO] │ │ └── json-schema-traverse@0.3.1 
 [INFO] │ ├─┬ babel-code-frame@6.26.0 
 [INFO] │ │ └─┬ chalk@1.1.3 
 [INFO] │ │   ├── ansi-styles@2.2.1 
 [INFO] │ │   ├── strip-ansi@3.0.1 
 [INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.2.0 
+[INFO] │ ├─┬ chalk@2.3.0 
 [INFO] │ │ └── escape-string-regexp@1.0.5 
 [INFO] │ ├─┬ concat-stream@1.6.0 
 [INFO] │ │ ├─┬ readable-stream@2.3.3 
@@ -426,14 +427,16 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ │ ├── circular-json@0.3.3 
 [INFO] │ │ │ ├─┬ del@2.2.2 
 [INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── arrify@1.0.1 
+[INFO] │ │ │ │ │ ├── arrify@1.0.1 
+[INFO] │ │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ └── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
+[INFO] │ │ │ │ └── pify@2.3.0 
 [INFO] │ │ │ └── write@0.2.1 
 [INFO] │ │ └── object-assign@4.1.1 
 [INFO] │ ├── functional-red-black-tree@1.0.1 
 [INFO] │ ├── globals@9.18.0 
-[INFO] │ ├── ignore@3.3.5 
+[INFO] │ ├── ignore@3.3.6 
 [INFO] │ ├── imurmurhash@0.1.4 
 [INFO] │ ├─┬ inquirer@3.0.6 
 [INFO] │ │ ├── ansi-escapes@1.4.0 
@@ -493,7 +496,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ └── text-table@0.2.0 
 [INFO] ├─┬ eslint-plugin-compat@2.0.1 
 [INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000748 
+[INFO] │ ├── caniuse-db@1.0.30000750 
 [INFO] │ └── requireindex@1.1.0 
 [INFO] ├─┬ htmllint-cli@0.0.6 
 [INFO] │ ├── bluebird@3.5.1 
@@ -561,6 +564,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │   │ │ └── path-exists@2.1.0 
 [INFO] │   │ └─┬ read-pkg@1.1.0 
 [INFO] │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │   │   │ ├── pify@2.3.0 
 [INFO] │   │   │ └─┬ strip-bom@2.0.0 
 [INFO] │   │   │   └── is-utf8@0.2.1 
 [INFO] │   │   └── path-type@1.1.0 
@@ -616,6 +620,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ │ │ └── path-exists@2.1.0 
 [INFO] │ │ │ └─┬ read-pkg@1.1.0 
 [INFO] │ │ │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │ │   │ ├── pify@2.3.0 
 [INFO] │ │ │   │ └── strip-bom@2.0.0 
 [INFO] │ │ │   └── path-type@1.1.0 
 [INFO] │ │ ├─┬ redent@1.0.0 
@@ -633,7 +638,6 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ │ ├── os-homedir@1.0.2 
 [INFO] │ │ │ └── os-tmpdir@1.0.2 
 [INFO] │ │ ├── rimraf@2.6.2 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
 [INFO] │ │ ├── semver@5.3.0 
 [INFO] │ │ └─┬ tar@2.2.1 
 [INFO] │ │   └── block-stream@0.0.9 
@@ -705,6 +709,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │   │ │ └── path-exists@2.1.0 
 [INFO] │ │   │ └─┬ read-pkg@1.1.0 
 [INFO] │ │   │   ├─┬ load-json-file@1.1.0 
+[INFO] │ │   │   │ ├── pify@2.3.0 
 [INFO] │ │   │   │ └── strip-bom@2.0.0 
 [INFO] │ │   │   └── path-type@1.1.0 
 [INFO] │ │   ├─┬ string-width@1.0.2 
@@ -789,8 +794,10 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ ├─┬ read-pkg@2.0.0 
 [INFO] │ │ ├─┬ load-json-file@2.0.0 
 [INFO] │ │ │ ├── parse-json@2.2.0 
+[INFO] │ │ │ ├── pify@2.3.0 
 [INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@2.0.0 
+[INFO] │ │ └─┬ path-type@2.0.0 
+[INFO] │ │   └── pify@2.3.0 
 [INFO] │ ├─┬ shell-quote@1.6.1 
 [INFO] │ │ ├── array-filter@0.0.1 
 [INFO] │ │ ├── array-map@0.0.0 
@@ -844,9 +851,9 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ └── throttleit@1.0.0 
 [INFO] │ └─┬ which@1.2.14 
 [INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.5 
+[INFO] ├── popper.js@1.12.6 
 [INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.1 
+[INFO] │ ├── dependency-graph@0.5.2 
 [INFO] │ ├─┬ fs-extra@4.0.2 
 [INFO] │ │ ├── jsonfile@4.0.0 
 [INFO] │ │ └── universalify@0.1.1 
@@ -873,7 +880,8 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ ├─┬ postcss-reporter@5.0.0 
 [INFO] │ │ └── log-symbols@2.1.0 
 [INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├── read-cache@1.0.0 
+[INFO] │ ├─┬ read-cache@1.0.0 
+[INFO] │ │ └── pify@2.3.0 
 [INFO] │ └─┬ yargs@8.0.2 
 [INFO] │   ├── camelcase@4.1.0 
 [INFO] │   ├─┬ os-locale@2.1.0 
@@ -889,7 +897,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │   └── yargs-parser@7.0.0 
 [INFO] ├─┬ qunit-phantomjs-runner@2.3.0 
 [INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.0 
+[INFO] ├─┬ qunitjs@2.4.1 
 [INFO] │ ├── chokidar@1.6.1 
 [INFO] │ ├─┬ commander@2.9.0 
 [INFO] │ │ └── graceful-readlink@1.0.1 
@@ -918,7 +926,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] │ │ └── resolve@1.1.7 
 [INFO] │ ├── builtin-modules@1.1.1 
 [INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.4.0 
+[INFO] │ └── resolve@1.5.0 
 [INFO] ├─┬ shelljs@0.7.8 
 [INFO] │ ├── interpret@1.0.4 
 [INFO] │ └── rechoir@0.6.2 
@@ -1012,7 +1020,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] ├─┬ stylelint-order@0.7.0 
 [INFO] │ └── postcss-sorting@3.0.2 
 [INFO] ├── stylelint-scss@2.1.0 
-[INFO] ├─┬ uglify-js@3.1.4 
+[INFO] ├─┬ uglify-js@3.1.5 
 [INFO] │ └── source-map@0.6.1 
 [INFO] ├── vnu-jar@17.11.1 
 [INFO] └─┬ workbox-build@2.1.0 
@@ -1037,8 +1045,8 @@ Build date: 2017-10-20 17:29:49
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap.css
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote CSS to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap-grid.css.map
+[ERROR] Wrote CSS to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Rendering Complete, saving .css file...
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-standard/target/bootstrap/dist/css/bootstrap-reboot.css
@@ -1049,12 +1057,12 @@ Build date: 2017-10-20 17:29:49
 [INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.65 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.65 s)
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.65 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.65 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.65 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.65 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.27 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.27 s)
+[ERROR] ✔ Finished dist/css/bootstrap.css (1.27 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.27 s)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.27 s)
+[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.27 s)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-standard ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-standard/target/bootstrap
@@ -1094,9 +1102,9 @@ Build date: 2017-10-20 17:29:49
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [ERROR] 
-[ERROR] __CURRENT__/tobago-theme-standard/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] 
 [ERROR] __CURRENT__/tobago-theme-standard/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
+[ERROR] 
+[ERROR] __CURRENT__/tobago-theme-standard/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
 [INFO] js/src/alert.js -> js/dist/alert.js
 [INFO] js/src/button.js -> js/dist/button.js
 [INFO] js/src/carousel.js -> js/dist/carousel.js
@@ -1109,22 +1117,22 @@ Build date: 2017-10-20 17:29:49
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 3s
-[ERROR] created dist/js/bootstrap.bundle.js in 3.3s
+[ERROR] created dist/js/bootstrap.js in 1.6s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-standard/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] created dist/js/bootstrap.js in 1.7s
+[ERROR] created dist/js/bootstrap.js in 1.4s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [ERROR] 
 [ERROR] __CURRENT__/tobago-theme-standard/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
+[ERROR] created dist/js/bootstrap.bundle.js in 1.6s
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
@@ -1157,8 +1165,8 @@ Build date: 2017-10-20 17:29:49
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
 [INFO] 
-[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [ERROR] INFO: Using input source map: dist/js/bootstrap.bundle.js.map
+[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [INFO] 
 [INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-standard/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
@@ -1195,8 +1203,8 @@ Build date: 2017-10-20 17:29:49
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/tether/1.1.1/css/tether-theme-basic.min.css is younger than original, use 'force' option or clean your target
 [INFO] tether-theme-arrows-dark.min.css (4681b) -> tether-theme-arrows-dark.min.min.css (4681b)[100%]
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/tether/1.1.1/css/tether-theme-arrows.min.css is younger than original, use 'force' option or clean your target
-[INFO] bootstrap.min.css (145971b) -> bootstrap.min.min.css (145715b)[99%]
-[INFO] bootstrap.css (190188b) -> bootstrap.min.css (146143b)[76%]
+[INFO] bootstrap.min.css (146193b) -> bootstrap.min.min.css (145937b)[99%]
+[INFO] bootstrap.css (190660b) -> bootstrap.min.css (146365b)[76%]
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/font-awesome/4.7.0/css/font-awesome.min.css is younger than original, use 'force' option or clean your target
 [INFO] font-awesome.min.css (31000b) -> font-awesome.min.min.css (30990b)[99%]
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css is younger than original, use 'force' option or clean your target
@@ -1213,7 +1221,7 @@ Build date: 2017-10-20 17:29:49
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css is younger than original, use 'force' option or clean your target
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/font-awesome/4.7.0/css/font-awesome.min.css is younger than original, use 'force' option or clean your target
 [INFO] nothing to do, __CURRENT__/tobago-theme-standard/target/classes/META-INF/resources/tobago/standard/font-awesome/4.7.0/css/font-awesome.min.min.css is younger than original, use 'force' option or clean your target
-[INFO] total input (385061b) -> output (340692b)[88%]
+[INFO] total input (385755b) -> output (341136b)[88%]
 [INFO] nb warnings: 0, nb errors: 0
 [INFO] 
 [INFO] --- maven-compiler-plugin:3.6.2:compile (default-compile) @ tobago-theme-standard ---
@@ -1247,7 +1255,7 @@ main:
  T E S T S
 -------------------------------------------------------
 Running org.apache.myfaces.tobago.renderkit.css.BootstrapClassUnitTest
-Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.299 sec - in org.apache.myfaces.tobago.renderkit.css.BootstrapClassUnitTest
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.229 sec - in org.apache.myfaces.tobago.renderkit.css.BootstrapClassUnitTest
 
 Results :
 
@@ -1266,7 +1274,7 @@ Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 02:16 min
-[INFO] Finished at: 2017-10-20T17:32:07+02:00
-[INFO] Final Memory: 38M/520M
+[INFO] Total time: 02:59 min
+[INFO] Finished at: 2017-10-25T15:04:50+02:00
+[INFO] Final Memory: 39M/481M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
index fa8113e..48e8d22 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
@@ -8734,10 +8734,6 @@ a.tobago-link.dropdown-item img, a.tobago-link.dropdown-item span {
   pointer-events: none;
 }
 
-.tobago-flexLayout > button.tobago-link {
-  height: 0;
-}
-
 button.tobago-link, button.tobago-treeCommand {
   color: #007bff;
   border-width: 0;
@@ -9333,6 +9329,29 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
   overflow: hidden;
 }
 
+/* splitLayout ---------------------------------------------------------------------- */
+.tobago-splitLayout-horizontal {
+  width: .5rem;
+  cursor: col-resize;
+}
+
+.tobago-splitLayout-horizontal:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
+.tobago-splitLayout-vertical {
+  height: .5rem;
+  cursor: row-resize;
+}
+
+.tobago-splitLayout-vertical:hover {
+  border: dotted #000000 thin;
+  z-index: 10000;
+  /* TODO: check, if needed (check also with iframes) */
+}
+
 /* suggest ---------------------------------------------------------------------- */
 .tobago-suggest {
   display: none;
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
index 6fa7534..686a03b 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
index ddc16d5..7dc07a6 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 492ef97..357b18e 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/bootstrap.min.js
index 27aace3..4031514 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -3,5 +3,5 @@
   * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
+var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this) [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-layout.js b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-layout.js
index b938b75..d75457e 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-layout.js
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-layout.js
@@ -19,6 +19,8 @@ Tobago.Layout = {};
 
 Tobago.Layout.init = function (elements) {
 
+  Tobago.Layout.initSplitLayout(elements);
+
   // fixing fixed header/footer: content should not scroll behind the footer
 
   var body = Tobago.Utils.selectWithJQuery(elements, "body");
@@ -81,5 +83,63 @@ var getMaxFooterHeight = function (footers) {
   return maxFooterHeight;
 };
 
+Tobago.Layout.initSplitLayout = function (elements) {
+  var splitter;
+  splitter = Tobago.Utils.selectWithJQuery(elements, ".tobago-splitLayout-horizontal");
+  splitter.each(function () {
+    var splitter = jQuery(this);
+    splitter.on("mousedown", {splitter: splitter}, function (event) {
+      var prev = splitter.prevAll(":not(style):last");
+      var width = prev.outerWidth();
+      console.info("initial width = " + width);
+      prev.css("width", width + "px");
+      prev.css({"flex-grow": "inherit", "flex-basis": "auto"});
+      jQuery(document).on(
+          "mousemove",
+          {offset: event.pageX - width, splitter: splitter},
+          Tobago.Layout.moveHorizontally);
+      jQuery(document).on(
+          "mouseup",
+          Tobago.Layout.stop);
+    });
+  });
+  splitter = Tobago.Utils.selectWithJQuery(elements, ".tobago-splitLayout-vertical");
+  splitter.each(function () {
+    var splitter = jQuery(this);
+    splitter.on("mousedown", {splitter: splitter}, function (event) {
+      var prev = splitter.prevAll(":not(style):last");
+      var height = prev.outerHeight();
+      console.info("initial height = " + height);
+      prev.css("height", height + "px");
+      prev.css({"flex-grow": "inherit", "flex-basis": "auto"});
+      jQuery(document).on(
+          "mousemove",
+          {offset: event.pageY - height, splitter: splitter},
+          Tobago.Layout.moveVertically);
+      jQuery(document).on(
+          "mouseup",
+          Tobago.Layout.stop);
+    });
+  });
+};
+
+Tobago.Layout.moveHorizontally = function (event) {
+  console.info("" + event.pageX + " " + event.data.offset);
+  var prev = event.data.splitter.prev();
+  prev.width(event.pageX - event.data.offset + "px");
+};
+
+Tobago.Layout.moveVertically = function (event) {
+  console.info("" + event.pageY + " " + event.data.offset);
+  var prev = event.data.splitter.prev();
+  prev.height(event.pageY - event.data.offset + "px");
+};
+
+Tobago.Layout.stop = function (event) {
+  jQuery(document).off("mousemove", Tobago.Layout.moveHorizontally);
+  jQuery(document).off("mousemove", Tobago.Layout.moveVertically);
+  jQuery(document).off("mouseup", Tobago.Layout.stop);
+};
+
 Tobago.registerListener(Tobago.Layout.init, Tobago.Phase.DOCUMENT_READY);
 Tobago.registerListener(Tobago.Layout.init, Tobago.Phase.AFTER_UPDATE);

-- 
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.